openwrt用shell脚本读取串口数据,数据读不全会是什么原因?需要做底层函数的设置吗?

openwrt路由端是这样操作的,在root目录下新建了两个文件,a文件和lelian.sh文件,权限0777,a文件主要
sh脚本里写的是这个

#! /bin/sh
Y_Name='你的传感器标识' #设置对应乐联网上传感器的标号
Y_key='你的key' #填上自己的key
WG='com/api/V1/Gateway/UpdateSensors/01' #乐联的网关地址,这里是第一个
echo "aaa" > /dev/ttyS1 #在串口里发aaa字符
cat /dev/ttyS1 > /root/a & { sleep 6 ; eval 'kill -9 $!' &> /dev/null ; } #cat命令这个可以获取串口输入,但是向右的这个箭头> 和后面的 /root/a & { sleep 6 ; eval 'kill -9 $!' &> /dev/null ; } 干嘛用的不清楚这是
read Va < /root/a #用的read函数把a文件的数写到Va中了
curl --request POST $WG --data "[{\"Name\":\"$Y_Name\",\"Value\":\"$Va\"}]" --header "userkey:$Y_key" #用curl命令发送温度和传感器标识,还有一个网址
串口的波特率都设置好了用的9600,用Linux crontab 设置定时时间*/1 * * * * /root/lelian.sh 一分钟执行一次。测试了下,就出现我刚才的情况,读数会读不全。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问