读书人

使用mscomm控件接收报文时断断续续的

发布时间: 2012-03-18 13:55:39 作者: rapoo

使用mscomm控件接收报文时,断断续续的问题,怎么解决呢?
我使用mscomm开发一个串口通信程序,跟下面的单片机通信时,接收到的报文断断续续,

我在mscomm控件的接收事件中,直接显示读取的报文。
比如我收到的一帧应该是有10个字节的,但是并不能一次性把10字节都读上来。

[解决办法]
1.m_ctrlComm.SetRThreshold(10);//设置为10,缓冲区中达到10字节响应一次
2.m_ctrlComm.SetInBufferCount(0);
m_ctrlComm.SetOutBufferCount(0);//发送前清空接收和发送缓冲区
3.m_ctrlComm.SetOutput(COleVariant(arraySend));
//完成1,2后进行发送,如果接收字节数一直为10,即可在初始化时设置,以后可不用重新设置
[解决办法]

C/C++ code
DWORD dwErrorMask = 0;COMSTAT cs;//读取之前先获取一下串口的状态,检查是否有返回数据,并得到数据的个数ClearCommError(hPort, &dwErrorMask, &cs);if (cs.cbInQue == 10){    //ReadFile(........);}else{    //重试}
[解决办法]
探讨
引用:

1.m_ctrlComm.SetRThreshold(10);//设置为10,缓冲区中达到10字节响应一次
2.m_ctrlComm.SetInBufferCount(0);
m_ctrlComm.SetOutBufferCount(0);//发送前清空接收和发送缓冲区
3.m_ctrlComm.SetOutput(COleVariant(a……

[解决办法]
探讨
serialport是一个控件吗?在哪里下载呢?

读书人网 >VC/MFC

热点推荐