欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

双线程打开串口接收电子称数据有关问题

更新时间: 2014-01-05 03:08:17 责任编辑: Author_N1

 

双线程打开串口接收电子称数据问题
背景:  产线需要一台计算机连接两个电子称(一大一小,这是因为精度问题。)

实现:  程序创建两个线程:线程1打开COM1,线程2打开COM2,并且COM1和COM2的波特率都设置为9600。开发的程序中线程1可以接收到小电子称从COM1发送的数据,线程2可以接收到电子称从COM2发送的数据。

问题:  我把电脑设备管理器那里的COM1、COM2的波特率都设置为4800,还是可以接收到数据。 
      1. 我就想,数据传输是不是和波特率没关啊?还是,我写的程序会把电脑的COM串口重新设置为9600?如果是和波特率有关的,那我的程序就存在bug了,有风险,万一影响了生产,可是要“掉脑袋”的。

      2. 程序是根据“COM1”、“COM2”的名字来打通数据通道的,还是通过波特率来选择数据通道。目前的状况是好像是根据名称。之所以这么问,是同事告诉我,COM串口的区分不是根据名称,是根据波特率,就像内核对象都有自己的HANDLE句柄ID(波特率),而名字就像标示(COM1、COM2)只是方便我们使用。

      请大神指教啊...
--参考方法--
你的PC串口是USB虚拟出来的?如果是usb虚拟串口,那真实的数据传输速率是USB的速率,和你配置的COM波特率没关系。
--参考方法--
怎么可能是根据波特率呢?我有多个串口都设置一样的波特率,电脑还怎么识别?

能收到数据不说明问题。如果没有设校验的话,波特率不对一样会收到东西,只不过内容不对。
如果收到的内容也正确,那看一下是不是设备可以自动调整波特率
--参考方法--
另外,你在管理器改波特率很可能不起作用。你的程序打开串口时应该会设波特率,要在程序里改
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:08:17
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/18693/
本文WWW.DOC100.NET DOC100.NET版权所有。