+ -
当前位置:首页 → 问答吧 → 高分!串口通信读取线程,PC端如何完整读取下位机(单片机)发过来的数据呢? 能提供代码吗?谢谢

高分!串口通信读取线程,PC端如何完整读取下位机(单片机)发过来的数据呢? 能提供代码吗?谢谢

时间:2011-12-16

来源:互联网

下位机(单片机)向PC发送数据有包头,长度,校验等.
但我的PC串口读取线程,我不知道如何去完整读取,感觉好迷茫
如果数据大,老是掉数据,如何通过缓冲区,能完整的读取呢? 希望大侠能告诉我.我祝愿他早日脱离GD的剥削

作者: cbx_xx   发布时间: 2011-12-16

PC端串口接收方式很多啊,一般的做法是设置串口接收超时
,数据大,超时设置长一点就可以了。
多次接收然后组合的方式不太好,一旦错一次就可能造成灾难性后果

作者: jiuzhoulh   发布时间: 2011-12-16

不满意...我要代码

作者: cbx_xx   发布时间: 2011-12-16

[code=C/C++][/code]http://apps.hi.baidu.com/share/detail/35027280

看看这个。。。

作者: shen_wei   发布时间: 2011-12-16

我也不知道你的通讯协议咋给你代码啊 就能给你个思路啊。。
你是用MSCOMM控件啊 还是用的API操作串口啊

作者: liujie250079934   发布时间: 2011-12-16

API 不用MSCOMM. 
协议头举例
Head : 3bypes 字符"CTN"
长度 : 4bypes 解析 :data个数+crc(2个btye校验)
data : 根据长度个数

作者: cbx_xx   发布时间: 2011-12-16

一定要采用异步通讯,发送比较简单,接受的话开个线程来接收串口事件,WaitComEvent,然后处理,缓冲区差不多就行了,循环接收,一次通讯完成就清空再继续接收,慢慢研究下,不是很难的

作者: yjz1409276   发布时间: 2011-12-16