芯片手册上说低速UART 基于FIFO,高速UART 基于 BAM(Bus Access Manager?)。高速UART Baudrates 300 bps up to 4M bps, 这就郁闷了, stty 也不支持这么高的设置啊,然后硬件工程师一时也没找到支持4MHz的硬件来测试,但测试就是这样提了BUG。
方案一: 修改stty源码然后编译,stty的源码 stty.c 在busybox的coreutils目录下。
方案二:网上找 uar t支持 4MHz 的测试代码.
显然方案二更简洁,并且的确找到了UART的测试代码,但是波特率还是不支持 4MHz,没关系,修改就好了。
用交叉编译工具生成 uart-test,开始测试:
adb push uart-test /var
sh-4.3# chmod 777 /var/uart-test
sh-4.3# /var/uart-test /dev/ttyHS0 4000000 0
Start...
Open...
set baud success
Sending...
2 send data successful
Close...
Watch the waveform of RX Pin, the data byte cycle should be near to 250 ns
测试完成。
下面是 UART的测试代码 uart-test.c
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <termios.h