串口通信接收方比发送方多一个字节

baidu_35717091 2016-11-17 01:36:18
串口通信接收方比发送方多一个字节
...全文
2085 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
BCBPLC 2018-04-26
  • 打赏
  • 举报
回复
我用MSCOMM32.ocx 做过小项目,虽不完美,异步事件方式能通讯。 第二次,因为帮别人做通讯用的很小巧的DLL,只能用API的串口通讯,发送再接收,也很简单。但不会异步事件方式。 第三方的通讯库,没用过。往往没有说明,只能瞎摸索。
baidu_35717091 2016-11-25
  • 打赏
  • 举报
回复
收到多的字节时由于ASCII码 的换行引起的,发送的换行是\n但接收到就变成了\r\n,多了一个字节,而且串口莫名的接收未知来源的数据,这和底层驱动有关系吗
hongss 2016-11-18
  • 打赏
  • 举报
回复
用串口调试助手慢慢查看,试试收、发,看看问题出在哪
xjq2003 2016-11-17
  • 打赏
  • 举报
回复
多出的字节是什么啊,是不是结束符之类啊? 串口通信建议你使用pcomm.dll; 最好不要自己一点一点api写代码,直接调用pcomsm的函数,还是比较稳定的。
串口是串行接口(serialport)的简称,也称为串行通信接口或COM接口。串口通信是指采用串行通信协议(serialcommunicaTIon)在一条信号线上将数据一个比特一个比特地逐位进行传输的通信模式。串口按电气标准及协议来划分,包括RS-232-C、RS-422、RS485等。串行通信在串行通信中,数据在1位宽的单条线路上进行传输,一个字节的数据要分为8次,由低位到高位按顺序一位一位的进行传送。串行通信的数据是逐位传输的,发送发送的每一位都具有固定的时间间隔,这就要求接收方也要按照发送方同样的时间间隔来接收每一位。不仅如此,接收方还必须能够确定一个信息组的开始和结束。常用的两种基本串行通信方式包括同步通信和异步通信。1、串行同步通信同步通信(SYNC:synchronousdatacommunicaTIon)是指在约定的通信速率下,发送端和接收端的时钟信号频率和相位始终保持一致(同步),这样就保证了通信双方在发送接收数据时具有完全一致的定时关系。同步通信把许多字符组成一个信息组(信息帧),每帧的开始用同步字符来指示,一次通信只传送一帧信息。在传输数据的同时还需要传输时钟信号,以便接收方可以用时针信号来确定每个信息位。同步通信的优点是传送信息的位数几乎不受限制,一次通信传输的数据有几十到几千个字节,通信效率较高。同步通信的缺点是要求在通信中始终保持精确的同步时钟,即发送时钟和接收时钟要严格的同步(常用的做法是两个设备使用同一个时钟源)。在后续的串口通信与编程中将只讨论异步通信方式,所以在这里就不对同步通信做过多的赘述了。

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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