在 RT-Thread Smart (rtsmart) 中使用 UART2 确实需要通过修改设备树实现引脚复用,因为 UART2 的引脚可能默认被分配给其他功能(如 GPIO、SPI 等)。以下是完整解决方案:
步骤:
rtt-smart/bsp/你的板子型号/board/board.dts)。
/* 在 pinctrl 节点中配置引脚复用 */
&pinctrl {
uart2_pins: uart2-pins {
rockchip,pins = <引脚编号>; /* 替换为 UART2 的实际引脚号(需查手册)*/
};
};/ 启用 UART2 /
&uart2 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&uart2_pins>;
};
**关键点**:
- 引脚号需参考芯片手册(如 Rockchip RK3566),例如 UART2_TX 对应 `GPIO1_C1`。
- 确保配置的引脚未被其他功能占用。cd rtt-smart/bsp/你的板子型号 # 进入 BSP 目录
scons --dtb=board.dtb # 仅编译设备树board.dtb(位于 bsp/你的板子型号 目录下)。/boot/board.dtb(或 /boot/dtbs/rockchip/ 下以具体板子命名的 dtb 文件)。board.dtb 复制到庐山派的 /boot/ 目录:adb push board.dtb /boot/ # 通过 ADB 传输
# 或挂载 SD 卡直接替换ls /dev/uart* # 查看是否有 /dev/uart2echo hello > /dev/uart2 # 发送数据
cat /dev/uart2 # 接收数据(需连接串口线验证)/boot/board.dtb,以防配置错误导致系统无法启动。/boot/dtbs/rockchip/rk3566-lubancat-2.dtb),需以实际文件名为准。通过以上步骤即可在 RT-Thread Smart 中启用 UART2。如遇到启动失败,请检查设备树语法和引脚配置是否正确。
举报
更多回帖