串口通讯~~给100分

ftzzh 2005-05-08 04:59:15
串口通讯困惑:
1、在串口通讯中,对数据的采集基本都是通过先请求后应答的方式来实现的。计
算机通过读取设备返回到串口缓冲区中的数据的方式得到数据。串口缓冲器中的数据被读走后即被清空。
2、针对某一设备的数据采集,计算机为了得到设备的不同参数(这些设备的参数的长短是不一致的),发出的请求报文也各不相同。
3、问题:当计算机发出某一请求报文后,设备立即返回请求结果放置于串口缓冲器中,如果计算机是通过定时发送请求和定时读取串口缓冲器中的数据,那么怎样才能保证读出的数据是完成的结果?而不是请求结果的一部分?因为各个请求返回的数据长度是不一样的,这样就更难保证数据的完整性了,怎么解决?
4、如果采用事件触发通讯,这种方式又怎样保证读取的数据的完整性,而不至于只读到残缺的部分数据?这是本人在串口通讯中一直未能弄明白的基本问题,但通过使用控件通讯,不考虑以上的问题,也能实现通讯:),

...全文
258 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuyan4794 2005-05-17
  • 打赏
  • 举报
回复
你可以将接受到的数据发到一个自定义的缓冲区里,然后再通过自己的程序分析
suisf2002 2005-05-17
  • 打赏
  • 举报
回复
事件触发通讯,你可以在接发时加延时,以最长的数据报文为准,就应该收到完整的保文。
xift_2008 2005-05-17
  • 打赏
  • 举报
回复
你的两个问题是一样的,无论使用哪知方式,你可以定义自己的
通讯协议,根据数据包的头尾在接收缓冲区中截取数据包,然后
提取出有效数据进行判断。
frank_yufu 2005-05-10
  • 打赏
  • 举报
回复
你发送一个报文后,接收的报文长度应该确定吧,如果不确定,那么接收的报文中应该有长度信息,如果这也没有,那我觉得你的协议有问题。
miladuo 2005-05-09
  • 打赏
  • 举报
回复
我以前也是用控件做的。
老夏Max 2005-05-09
  • 打赏
  • 举报
回复
http://www.vckbase.com/document/viewdoc/?id=1184
老夏Max 2005-05-09
  • 打赏
  • 举报
回复
http://www.vckbase.com/document/viewdoc/?id=1322
http://www.vckbase.com/document/viewdoc/?id=1133
http://www.vckbase.com/document/viewdoc/?id=1134
http://www.vckbase.com/document/viewdoc/?id=1114
http://www.vckbase.com/document/viewdoc/?id=671
http://www.vckbase.com/document/viewdoc/?id=612
oyljerry 2005-05-09
  • 打赏
  • 举报
回复
串口定义了数据的帧格式,控制位,数据位等

2,643

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧