首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 嵌入开发 >

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

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

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

实现:  程序创建两个线程:线程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波特率没关系。
[解决办法]
怎么可能是根据波特率呢?我有多个串口都设置一样的波特率,电脑还怎么识别?

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

热点排行