用SPCOMM for MFC类写串口通信有关问题
用SPCOMM for MFC类写串口通信问题
用串口调试助手和程序进行通信,在 ReceiveData函数接收到数据 马上随便回复一串,串口8和9进行通信,串口调试助手是串口9
可以正常通信,但是串口调试助手一直发射的时候,移动程序窗口发现程序停止发射数据给串口调试助手,停止移动又可以了,是不是主线程阻塞,需要开辟一个线程处理接收的回调函数啊?具体该怎么做呢?哪位大侠帮忙下!谢谢~
------解决方案--------------------
移动窗口时是会阻塞一段时间的窗口消息
------解决方案--------------------
那就是 SPCOMM 堵塞了, 再研究一下 SPCOMM 看看 。
用串口调试助手和程序进行通信,在 ReceiveData函数接收到数据 马上随便回复一串,串口8和9进行通信,串口调试助手是串口9
//全局变量
TComm *Serial;
char rev[1000];
//启动
void CSPCTest01Dlg::OnBnClickedOk()
{
Serial->CommName = L"COM8";
Serial->BaudRate = 9600;
Serial->ByteSize = TComm::_8;
Serial->Parity = TComm::None;
Serial->StopBits = TComm::_1;
Serial->OnReceiveData =ReceiveData;
Serial->ReadIntervalTimeout = 50;
if (!Serial->IsOpen())
Serial->StartComm();
rev[0]=0x57;
rev[1]=0x57;
rev[2]=0x57;
Serial->WriteCommData(rev,4);
}
//接收函数
void CALLBACK ReceiveData(void *obj,void *Buffer, WORD BufferLength, bool Abnormal)
{
memcpy_s(rev,1000,Buffer,BufferLength);
rev[0]=0x54;
rev[1]=0x00;
rev[2]=0x11;
rev[3]=0x20;
Serial->WriteCommData(rev,34);
}
可以正常通信,但是串口调试助手一直发射的时候,移动程序窗口发现程序停止发射数据给串口调试助手,停止移动又可以了,是不是主线程阻塞,需要开辟一个线程处理接收的回调函数啊?具体该怎么做呢?哪位大侠帮忙下!谢谢~
------解决方案--------------------
移动窗口时是会阻塞一段时间的窗口消息
------解决方案--------------------
那就是 SPCOMM 堵塞了, 再研究一下 SPCOMM 看看 。