完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
求助各位大神,本人labview小白。请问应该如何在串口一直发送数据给labview上位机的情况下,保证任意时刻打开串口时读到的是一个完整的数据呢,而不是只收到一部分数据 |
|
相关推荐
6个回答
|
|
加校验,如果第一句话不是完整的,就舍弃掉
|
|
|
|
下位机每次发送的字节数是固定的吗?是固定的就很简单,串口读取函数 输入要读取的字节数。
如果下位机是随机发送不固定的字节数,用串口属性节点获取串口字节数,判断当串口缓冲区字节数大于0时延时10ms再次获取串口字节数,然后将获取的串口字节数给串口读取函数,就能读取完整的一帧数据了。 |
|
|
|
问题已自行解决,感谢各位大佬的回答
|
|
|
|
要保证在任何时刻打开串口时读到的是一个完整的数据,可以使用以下方法:
1. 发送方在发送数据时,每条数据结尾添加一个特定字符作为结束符。例如,可以使用回车或换行符作为结束符。 2. 接收方在读取数据时,需要先判断串口缓冲区中是否存在结束符。如果存在结束符,则说明已经读取到了完整的数据,可以进行处理;如果不存在结束符,则需要继续等待读取数据,直到读取到完整的数据为止。 3. 接收方可以使用LabVIEW的串口读取函数来读取数据。在读取函数的输入参数中,可以设置读取的数据长度和超时时间。如果设置了超时时间,则在读取数据时如果超过了超时时间仍未读取到完整的数据,函数会自动返回。 4. 可以在LabVIEW中使用状态机来实现串口数据的读取和处理。状态机可以根据当前收到的数据进行状态转移,并根据不同的状态执行不同的操作,从而确保读取到完整的数据。 需要注意的是,以上方法只能保证接收方读取到完整的数据,但并不能保证发送方每次都能完整地发送数据。所以在编写串口通信程序时,需要对发送方和接收方进行协同设计,确保数据的完整性。 |
|
|
|
做循环拼接,或加个等待等缓存区的数据全了后读取
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
用udl里的字符串信息在局域网内其他电脑连接sql数据库为什么为出现连接失败拒绝访问?
1796 浏览 2 评论
为什么同一个队列引用的全局变量,运行在两个子vi中发现队列数据丢失了
1407 浏览 0 评论
1610 浏览 0 评论
关于labview2024版本的lvanlys.dll出错的问题
3477 浏览 3 评论
1527 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 12:06 , Processed in 0.628882 second(s), Total 90, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号