日期:2014-05-17  浏览次数:20867 次

C#实现串口通信的问题
各位大侠,小弟刚用C#实现了最基本的串口通信,2个PC机之间可以通信,但通信与波特率啊,停止位无关,就算波特率不一样也一样可以通讯。我不知道是为什么,我要在哪里设置才能实现相同波特率才能通信,还有奇偶校验是怎么实现的?我刚接触C#和vs2010,感谢大侠们的赐教!

------解决方案--------------------
波特率不一样也能通信?这不可能呀,硬件上就实现不了,传输的数据即使收到了也是错误的。
可能是你波特率没设置成功吧
------解决方案--------------------
另外 波特率不是确保能否通讯的关键,如果你想确保是否通讯可以再发送数据和接收数据时做封包处理。做了封包奇偶校验也就可以不用使用了。

奇偶校验用在数据传送里。数据传送时,最后一位为奇偶校验位。收发上方事先已经约定好进行奇校验还是偶校验。
比如传送0101这个二进制数,约定为奇校验。0101里面1的个数是偶数个,所以奇偶校验位为1,变成01011,这样1的个数就为奇数个。收到方就根据奇偶校验位判断数据有没有发送错误。
但是就跟你所说的,这个方法有缺陷,如果数据一下子错了两位,比如刚才的0101,发成了1001,错误就查不出来了。