aaxww
福韩宝
采纳率100%
2015-01-21 02:14 阅读 2.2k
已采纳

Vc Cncomm类制作的串口软件第一次通信总是无法下发数据问题

1

vc调用Cncomm类制作的串口软件,首次打开正确的串口后,无法传输数据,用其他串口软件打开串口却可以正常发送数据,而后再用Cncomm类制作的串口软件也可以 传输数据了?原因未知
在线等待

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • 已采纳
    aaxww 福韩宝 2015-01-21 06:39

    1、用CnComm写的程序发送不正常,但用其他程序打开端口后,再用CnComm写的程序就好了?
    分析:
    具体原因是配置参数失败。并且该网友没有检查Open()或者SetState()的返回值, 所以没有发现配置参数失败造成的。

    比如设置波特率"9600,O,7,1",不小心把配置字符串写成了"9600,7,O,1"。
    使用CnComm配置后失败,并没有检查返回值,发送数据就会是乱码,或者不能正确接收。
    这时很自然的,你会用其他工具程序打开端口,由于有可视界面,打开参数正确,又能正常发送。
    然后你又想用CnComm再打开试试,结果发现又行了。
    实际上配置串口失败,会采用上一次正确配置,所以看上去正常了,实际上单独运行就不行了。

    点赞 评论 复制链接分享
  • 91program 91program 2015-01-21 02:55

    首次打开正确的串口后,无法传输数据,你需要分析一下无法传输数据的原因、建议将各个串口的 API 的返回值 和 GetLastError() 的数值一起输出看看是哪一步出现异常。
    这个要先分析代码。

    点赞 1 评论 复制链接分享
  • oyljerry oyljerry 2015-01-21 03:16

    打开后,查看一下发送数据的返回值信息等,是不是串口没有ready等

    点赞 1 评论 复制链接分享
  • aaxww 福韩宝 2015-01-21 06:38

相关推荐