这一章单纯是因为原子的板子上485/232/GPS走的是板子上的串口通道。(自学的正点原子板子)
且串口驱动部分NXP已经写好了,我们要做的就是修改,配置设备树,使能我们要使用的串口
串口是很常用的一个外设,在 Linux
下通常通过串口和其他设备或传感器进行通信,根据电平的不同,串口分为 TTL
和
RS232
。不管是什么样的接口电平,其驱动程序都是一样的,通过外接 RS485
这样的芯片就可以将串口转换为
RS485
信号,正点原子的
I.MX6U-ALPHA
开发板就是这么做的。对于正点原子的 I.MX6U-ALPHA
开发板而言,
RS232
、
RS485
以及
GPS
模块接口通通连接到了 I.MX6U
的
UART3
接口上,因此这些外设最终都归结为
UART3
的串口驱动。
同
I2C
、
SPI
一样,
Linux
也提供了串口驱动框架,我们只需要按照相应的串口框架编写驱动程序即可。
串口驱动没有什么主机端和设备端之分,就只有一个串口驱动
Linux
下
UART
驱动框架
1
、
uart_driver
注册与注销
2
、
uart_port
的添加与移除
3
、
uart_ops
实现
I.MX6U
的
UART
驱动
NXP
已经编写好了,所以不需要我们编写。
我们要做的就是在设备树中添加 UART3
对应的设备节点即可。打开
imx6ull-alientek-emmc.dts 文件,在此文件中只有 UART1
对应的
uart1
节点,并没有
UART3
对应的节点,因此我们可以参考 uart1
节点创建
uart3
节点
(本章重点在于设备树构建,认真学)
&uart3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart3>; //跳转到具体的设备描述
status = "okay";
};
/* 这是一条分界线 */
pinctrl_uart3: uart3grp {
fsl,pins = <
MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX 0X1b0b1
MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX 0X1b0b1
>;
};
执行“minicom -s”命令,此时 minicom 配置界面就可以打开了,
然后选中“Serial port setup”
按下 CTRL- A,然后再按下 Z 就可以打开 minicom 帮助信息界面
什么都不需要你写,只需要配置串口设备树,驱动自带,然后配置minicom(串口通讯助手)进行串口通讯即可