Rockchip UART (Universal Asynchronous Receiver/Transmitter) 基于16550A串口标准。内核里面使用8250串口通用驱动,因此能够支持Linux下的标准串口编程。
板上有三路通用串口,还有一路调试串口,建议不要把调试串口用于其他用途。
这三路通用串口的序号分别是5、7、9(如果9号串口复用了i2c,就不要在使用了),在Linux下对应的设备节点分别是 /dev/ttyS5 /dev/ttyS7 (/dev/ttyS9) 。下面以 ttyS7 为例介绍其用法,其他几路串口也是类似的。
下面通过在硬件上短接ttyS7的TX 和RX,来进行收发测试,接线如下
"/dev/ttyS*"的节点都需要root权限才能操作,使用命令行或者C语言编译出来的程序操作串口都需要root权限。如果是ssh或者使用LX终端的,先执行如下命令获取root权限。
sudo su
查看串口信息
stty -F /dev/ttyS7
设置串口波特率为115200
stty -F /dev/ttyS7 speed 115200
设置串口八位数据位 无校验 一位停止位 无回显
stty -F /dev/ttyS7 cs8 -parenb -cstopb -echo
将串口的TXRX短接,然后进行收发测试
后台接收数据,前台执行发送
cat /dev/ttyS7 &
echo -e "12345\n" > /dev/ttyS7
执行结果如下,可以看到接收到的数据即为发送的