关于串口,重启计算机后总是连接不上,用串口调试工具打开一次以后才能连接上

来源:互联网 发布:手机广告清理软件 编辑:程序博客网 时间:2024/04/30 02:12

关于串口,重启计算机后总是连接不上,用串口调试工具打开一次以后才能连接上的这个问题,以前遇到过后来不知道改了哪里就又没事了。这几天做串口程序,又出现上述问题,郁闷不得了。在网上找到一个跟帖子描述的内容跟我这个毛病差不多,也是不知道怎么以修改就好了。http://bbs.csdn.net/topics/300087092。

我用两台机器互联发现,重启计算机后直接连接发送内容时,另一台计算机接收到的全是乱码。这说明肯定是我的代码有问题。我把每个串口操作的函数都加上出错信息返回,终于发现问题的原因了。

我发现当执行 SetCommState 是程序报错,也就是设置串口的时候出现错误了。再仔细检查发现设置 dcb.StopBits属性时直接赋值为1,然而事实上这并不代表停止位为1,而是1.5。关于StopBits 的描述是这样子的:dcb.StopBits //两个停止位 0,1,2 = 1, 1.5, 2 ,当StopBits 值为0是代表停止位为1,值为1时代表停止位为1.5。而计算机并没有1.5这个设置,因此 SetCommState 报错,也就是初始化串口没有成功。

综上,当发现重启机器后自己的代码串口连接不上,用串口调试软件连接一次后,代码的串口又能够连接了。问题应该在串口初始化上面,懒得监视初始化代码的错误信息,而串口初始化又没有成功。当用别的软件正确设置过对应串口后,自己的代码才能正常连接。

原创粉丝点击