修改openwrt(通过stty)

openwrt默认使用的波特率是115200,arduino的串口波特率可自行设置。当然,一般都会设置9600,也可以设置为115200。假设现在openwrt波特率为115200,arduino的串口波特率为9600.要进行一个通信,该如何设置呢? 
首先我们需要在openwrt上使用stty这个软件更改波特率。安装stty很简单,opkg update更新软件列表,然后opkg install stty就OK了。安装完之后使用命令更改波特率:stty -F /dev/ttyAth0 raw speed 9600,这样就将openwrt的串口波特率更改为9600.
需要注意的是openwrt重启之后串口波特率又会恢复到115200,我们可以将上面那条命令写成一个shell脚本,添加到启动项中,每次开机自动设置串口波特率。
下面我们看如何发送数据。openwrt向串口发送一个字符'a',直接使用echo 'a' > /dev/ttyATH0就行了。arduino那边使用1602液晶显示到接收的数据。这里显示出来的是字符'a'的ASCII码,并不是真正的字符'a',需要做转换才能显示为a。arduino代码为:
设置串口: Serial.begin(9600);
设置1602液晶:lcd.setCursor(0, 0);
监听串口并操作液晶:
  1. if(Serial.available()){ lcd.print(Serial.read());}

你可能感兴趣的:(修改openwrt(通过stty))