Linux RS232/485/GPS 驱动实验(3)-设备树修改

本文档介绍了如何在IMX6ULL的设备树中创建UART3的pinctrl子节点,确保UART3_TXD和UART3_RXD IO用于UART3,并添加相应的uart3节点。通过修改设备树,重新编译并启动Linux后,系统会生成名为“/dev/ttymxc2”的设备文件,用于UART3通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 UART3 IO 节点创建
UART3 用到了 UART3_TXD UART3_RXD 这两个 IO ,因此要先在 iomuxc 中创建 UART3
对应的 pinctrl 子节点,在 iomuxc 中添加如下内容:
1 pinctrl_uart3: uart3grp { 
2 fsl,pins = < 
3     MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX 0X1b0b1
4     MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX 0X1b0b1
5     >;
6 };
最后检查一下 UART3_TX UART3_RX 这两个引脚有没有被用作其他功能,如果有的话
要将其屏蔽掉,保证这两个 IO 只用作 UART3.
2 、添加 uart3 节点
默认情况下 imx6ull-alientek-emmc.dts 中只有 uart1 uart2 这两个节点,如图 所示:
&uart1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart1>;
	status = "okay";
};

&uart2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart2>;
	fsl,uart-has-rtscts;
	/* for DTE mode, add below change */
	/* fsl,dte-mode; */
	/* pinctrl-0 = <&pinctrl_uart2dte>; */
	status = "okay";
};
uart1 UART1 的,  I.MX6U 开发板上没有用到 UART2 ,而且 UART2 默认用到了 UART3 IO ,因此需要将 uart2 这个节点删除掉,然后加上 UART3 对应的 uart3 , uart3 节点内容如下:
1 &uart3 { 
2 pinctrl-names = "default"; 
3 pinctrl-0 = <&pinctrl_uart3>;
4 status = "okay"; 
5 }; 
完成以后重新编译设备树并使用新的设备树启动 Linux ,如果设备树修改成功的话,系统
启动以后就会生成一个名为“ /dev/ttymxc2 ”的设备文件, ttymxc2 就是 UART3 对应的设备文
件,应用程序可以通过访问 ttymxc2 来实现对 UART3 的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值