求助!!LABVIEW读取串口返回命令,字符丢失

2019-07-17 13:53发布

各位大神你们好,采用labview串口与下位机MCU通信,每60sMCU回复一个CHARGE_OVER#的字符串,LABVIEW串口接受该字符串,方法是,当字节数达到7个以上时,开始读取串口缓存,但是结果总是丢后面的字符,读到的都是CHARGE_O或是CHARGE_OVE,具体代码见截图,望大神指点,谢谢。
程序框图.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
呼呼721
1楼-- · 2019-07-19 05:30
 精彩回答 2  元偷偷看……
呼呼721
2楼-- · 2019-07-19 11:30
diertimeidaan 发表于 2017-9-4 13:54
1、首先确认一下发送过来的数据是否完成的存入了缓存,可以将后面的清空缓存函数去掉看一下是否所有数据进入了缓存。
2、while循环使用这么高的延时并不是一个明智的选择。
3、如果全部数据已经进入了缓存,可采用判断终止符的方式来结束read函数。 ...

新代码
程序代码2.png
ElecFans王岑
3楼-- · 2019-07-19 12:12
问题如果解决了麻烦选一下最佳答案吧
呼呼721
4楼-- · 2019-07-19 13:51
ooloft 发表于 2017-9-4 17:16
两个问题:
1.执行读取动作的条件有问题,你写的是当port口字节数大于1就开始读,你在读的过程这个值会减小,可能小于或等于1.
2.读取到的换成区字符串要用连接字符串指令,因为读到的缓冲区字符可能不是连续的,所以要用连接字符串,要转一下。 ...

将缓存的字符串拼接在一起,这个方案正在尝试,代码还没想好怎么写,里面循环太多了,程序结构需要优化。
idianze
5楼-- · 2019-07-19 16:54
我只是路过打酱油的,嘿嘿
diertimeidaan
6楼-- · 2019-07-19 17:22
 精彩回答 2  元偷偷看……

一周热门 更多>