在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。有可能是这个原因。

posted on 2009-11-08 00:00 gewala 阅读(391) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

设计模式 网络编程

网络

搜索

最新评论

阅读排行榜

评论排行榜