读书人

在vc串口通讯程序中,当4个com口同时通

发布时间: 2012-11-03 10:57:44 作者: rapoo

在vc串口通讯程序中,当4个com口同时通信时表现串口很不稳定,请问各位应怎么处理?
在vc串口通讯程序中,当4个com口同时通信时表现串口很不稳定,请问各位应怎么处理?
谢谢各位

[解决办法]
那应该是你自己的线程设计不够好,或是共享资源没有互斥吧
[解决办法]
4个com口同时通信时,降低 波特率 试试。
[解决办法]
你用多线程做的吗?每个线程处理一个串口?
[解决办法]
BOOL ret=ReadFile(m_hCom,m_abyComData+m_nTotalRead,sizeof(m_abyComData)-m_nTotalRead,&dw,NULL);
阻塞式的读?
BOOL ret=WriteFile(m_hCom,p,len,&wn,NULL);
如何区分4个 com?
[解决办法]
先问楼主1个问题:
你读取串口数据的机制是怎样设计的?是主程序中设计好了固定的时间间隔,然后定时到串口的缓存中取数;还是主程序中的串口通信控件响应接收事件,当检测到有数据发过来之后再去取数?
[解决办法]
你的timeout好像有点短,
我的一个案例:
COMMTIMEOUTS timeout;
timeout.ReadIntervalTimeout=2;
timeout.ReadTotalTimeoutMultiplier=2;
timeout.ReadTotalTimeoutConstant=50;
timeout.WriteTotalTimeoutMultiplier=1;
timeout.WriteTotalTimeoutConstant=50;
另外DCB的XonLim和XoffLim也检查一下
[解决办法]
还是使用事件触发吧!

读书人网 >VC/MFC

热点推荐