在EZ430开发板的串口类异常

在EZ430开发板的串口类异常

  我发现串口类cnComm在串口转USB的设备上有些能工作(USB430),但在EZ430上却不能工作,很奇怪!我怀疑是硬件问题,毕竟串口转USB硬件上有差别。我发现cnComm的线程一直收到一些不存在的事件,导致死循环。
  今天上网看了一篇资料,说是那个DCB配置了硬件握手协议导致了一些不支持这个功能的串口转USB设备出错。我觉得有点道理,有时间试验一下。先看一下cnComm的DCB配置情况。

摘抄

    使用API进行串口编程时设置串口属性(SetCommState)是一条必经之路,其DCB结构几乎涵盖了所有和串口通讯相关的资源设置,由于有些设备需要使用RTS和CTS进行数据的收发控制,为了提高接收效率可以使用RTS握手选项dcb.fRtsControl=RTS_CONTROL_HANDSHAKE; 在标准串口下使用一切正常,但在一些没有标准串口的笔记本上却不能发送数据,后经过仔细排查发现就是RTS握手选项搞的鬼,关闭此选项后一切恢复正常。

    由于公司只有一种USB转RS232的设备,所以也没有测试其他品牌/类型的设备是否也存在这个问题。如果有朋友遇到串口通讯在USB转RS232下不好用的时候,可以看看RTS握手选项的状态。


    发现cnComm打开了发送和接收的流控制,fDtrControl=DTR_CONTROL_ENABLE,fRtrControl=RTR_CONTROL_ENABLE。有可能是这个原因。

你可能感兴趣的:(在EZ430开发板的串口类异常)