硬件: MT7688, USART1 串口 (/dev/ttyS1)
软件: openWRT Ver 15, Linux 3.18.29
串口配置及其开机服务
1. 查看串口设备
#ls -l /dev/tty*
查询结果示例
crw-r--r-- 1 root root 5, 0 Jan 1 1970 /dev/tty
crw-r--r-- 1 root root 4, 64 Jan 1 1970 /dev/ttyS0
crw-r--r-- 1 root root 4, 65 Jan 1 1970 /dev/ttyS1
crw-r--r-- 1 root root 4, 66 Jul 31 06:58 /dev/ttyS2
说明:
a. /dev/tty就是登录的shell终端,设备号是(5,0);
b. /dev/ttyS0,/dev/ttyS1,/dev/ttyS2 就是设备所有的三个串口;
2. 软件安装
#opkg update
#opkg install coreutils-stty
安装完后,可执行文件放在:/usr/bin/stty;
3. 设置串口参数,以及串口数据收发测试;
显示串口当前参数
#stty -F /dev/ttyS1
#stty -a -F /dev/ttyS1
串口参数配置
#stty -F /dev/ttyS1 raw speed 115200
串口2 发送数据
#echo "hello" > /dev/ttyS1
串口2 接收数据
#cat /dev/ttyS1
注:但上述设置在开机后会丢失,故把相关设置放入启动服务中.
4. 参数开机启动服务化
4.1 新建或编辑文件:
#vi /etc/init.d/usart1
4.2 文件内容:
#!/bin/sh /etc/rc.common
#/etc/init.d/usart1
START=80
start() {
/usr/bin/stty -F /dev/ttyS1 raw speed 115200
}
stop(){
killall usart1
}
4.3 修改文件属性:
#chmod 777 /etc/init.d/usart1
4.4 启用开机启动服务
#/etc/init.d/usart1 enable
4.5 关闭服务
#/etc/init.d/usart1 disable
5. 重启进行测试
#reboot
串口TCP透传及其开机服务
1. 软件安装
#opkg update
#opkg install ser2net
ser2net工具安装完后,可执行文件放在:/usr/sbin/ser2net,配置文件放在/etc/ser2net.conf
2. 配置修改
目的: 实现2003TCP端口与串口1,ttyS1互通; 保留2003端口,波特率修改为115200。
ser2net.conf 文件中有很多我们用不到的端口配置,都注释掉.
#....
# Don't do this by default
#CONTROLPORT:2000
#2001:raw:600:/dev/ttyS0:9600 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS
#2002:raw:600:/dev/ttyS1:115200 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS
2003:raw:0:/dev/ttyS1:115200 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS
#3020:telnet:0:/dev/ttyUSB0:9600 banner1 remctl asdfasd
#3021:telnet:0:/dev/ttyUSB1:9600 banner2 open1 close1 remctl
#5000:telnet:0:/dev/ttyAPP0:9600 NONE 1STOPBIT 8DATABITS -XONXOFF LOCAL -RTSCTS led-tx=tx led-rx=rx
3. 配置生效命令;
#ser2net -c /etc/ser2net.conf
注:但上述配置有效性在开机后会丢失,故把相关设置放入启动服务中.
4. 参数开机启动服务化
4.1. 新建或编辑文件:
#vi /etc/init.d/ser2net_ttyS1_tcp2003
4.2 文件内容
#!/bin/sh /etc/rc.common
#/etc/init.d/ser2net_ttyS1_tcp2003
START=80
start() {
/usr/sbin/ser2net -c /etc/ser2net.conf
}
stop(){
killall ser2net_ttyS1_tcp2003
}
4.3 修改文件属性:
#chmod 777 /etc/init.d/ser2net_ttyS1_tcp2003
4.4 启用开机启动服务
#/etc/init.d/ser2net_ttyS1_tcp2003 enable
4.5 关闭服务
#/etc/init.d/ser2net_ttyS1_tcp2003 disable
5. 重启进行测试
#reboot