同样的一台下位机,同样的程序(采用CreateFile,ReadFile控制串口),在部分计算机上发送命令,接收数据都很正常,但是在某些计算机上却只能发送数据,计算机无法读到下位机的数据!最奇怪的是这时采用"串口调试助手"就能正常的收发数据!而且"串口调试助手"启动的时候可以收到下位机对我的程序发送的命令的响应数据!请教大家,如何解决这个问题.
注:使用"串口调试助手"可以正常发送接收数据后,采用我的程序还是无法收到数据!
注:使用"串口调试助手"可以正常发送接收数据后,采用我的程序还是无法收到数据!
解决方案 »
- 在MFC应用程序的调试debug失败。。。求大侠指点。。救急。。
- 关于stl编译的问题
- 请问下用VS2005制作基于对话框的应用程序启动画面
- 请教:DLL导出类,如何在VC中调用,举个例子!
- 100分 在线等
- =======〉我用 GDI+ 放了个 gif 图片作为窗体背景,当窗体 OnResize 时窗体上的控件都不见了,是否有什么层的概念?
- 请教高手一个关于不规则区域内外点判断算法的问题.
- 那位高手有画二维图形的原代码,把核心部分发给我参考一下,
- 关于CString的一个很奇怪的问题?大家来研究一下
- (很急!!)求助几个问题,UP有分!
- 经过Directshow Filter改变过后的Video如何保存?
- 今天和我老婆各捐了100,这里散分,积累一下RP!这里也散100分。
可能是在串口设置上的问题。重点检查DCB和TimeOuts。多试试。
还有,GetLastError(),分析具体原因。
你没有受到串口事件通知???? 是不是你的程序堵塞在其他地方的处理,而不是在WaitCommEvent中。
同时再看看DCB的参数设置问题。同时也有可能在处理串口事件通知的时候,没弄好哦
如果楼主用的异步方式,注意如果WaitCommEvent返回FALSE,还需要用GetLastError()判断是否为ERROR_IO_PENDING,如果是需要用while( !GetOverlappedResult(....) )来等待
在接收到数据后需要及时检查数据帧是否正确,如果不是双方通信协议中的数据格式,要及时调用ClearCommError来清除错误剩下的就是在具体的系统环境下耐心调试了一个月前我也做了这么个项目,当时也够抓狂的,祝楼主好运!
如果项目允许用MsComm控件的话,还是用控件吧