UART 使用
更新时间:2017-12-25 阅读:5371
简介
ROC-RK3328-CC 支持三路 UART:UART0, UART1, UART2, 都拥有两个 64 字节的 FIFO 缓冲区,用于数据接收和发送。 其中:
UART0 用于蓝牙传输,UART2 用作调试串口,只有 UART0 和 UART1 支持硬件自动流控。
支持比特率 115.2Kbps,460.8Kbps,921.6Kbps,1.5Mbps,3Mbps,4Mbps。
支持自选波特率,即使使用非整数时钟分频器
支持基于中断或基于 DMA 的模式
支持 5-8 位宽度传输
ROC-RK3328-CC开发板为了方便用户使用,引出了一排通用的GPIO,其对应原理图如下图:
其中 RX2 ,TX2 为 UART2 调试串口,RX1,TX1 为 UART1 可作为外部串口使用。
调试方法
配置好串口后,用户可以通过主机的 USB 转串口适配器向开发板的串口收发数据,步骤如下:
(1) 连接硬件
将开发板 UART1 的 TX、RX、GND 引脚分别和主机串口适配器的 TX、RX、GND 引脚相连。
(2) 打开主机的串口终端
在终端打开kermit,并设置波特率:
$ sudo kermit C-Kermit> set line /dev/ttyUSB0 C-Kermit> set speed 9600 C-Kermit> set flow-control none C-Kermit> connect
/dev/ttyUSB0 为 USB 转串口适配器的设备文件
波特率与配置 DTS 节点中的 current-speed 属性相同
(3) 发送数据
uart1 的设备文件为 /dev/ttyS1。在设备上运行下列命令:
echo firefly uart1 test... > /dev/ttyS1
主机中的串口终端即可接收到字符串“firefly uart1 test...”
(4) 接收数据
首先在设备上运行下列命令:
cat /dev/ttyS1
然后在主机的串口终端输入字符串 “Firefly uart1 test...”,设备端即可见到相同的字符串。
FAQs
Q1: 为何板子接上串口适配器后系统报错?
A1:ROC-RK3328-CC 开发板的 TX 和 RX,分别对应串口适配器(官方)的 TX 和 RX,如果搞混淆了会导致通信出错。