MFC中,怎样利用多线程和回调函数,从串口调试助手中接收数据,然后在编辑框中显示出来?
我想编一个基于对话框的程序comsendrecv.exe,与串口调试助手之间进行通信(利用VSPE),串口调试助手中已经能接收我从comsendrecv.exe中发送的数...
我想编一个基于对话框的程序comsendrecv.exe,与串口调试助手之间进行通信(利用VSPE),
串口调试助手中已经能接收我从comsendrecv.exe中发送的数据了,现在我想在comsendrecv.exe中接收到串口调试助手中发过来的数据,我已经写好了一个串口类SerialPort,请问我还要在该类和对话框类中添加什么,是怎么样一个流程,跪求大神帮忙啊~~~~~~~~~~~~ 展开
串口调试助手中已经能接收我从comsendrecv.exe中发送的数据了,现在我想在comsendrecv.exe中接收到串口调试助手中发过来的数据,我已经写好了一个串口类SerialPort,请问我还要在该类和对话框类中添加什么,是怎么样一个流程,跪求大神帮忙啊~~~~~~~~~~~~ 展开
1个回答
展开全部
你在你的串口类SerialPort里面加一个线程函数或者回调函数private函数:
static DWORD WINAPI ReceiveData(LPVOID lpParam); //线程函数
static WORD ProcessReceiveData(void* data);
void ProcessData(DWORD (*Func)(void*) ); //回调函数
然后再你接收数据的地方创建一个线程或者回调函数来处理你从串口接收到的数据:
CreateThread(NULL, 0, ReceiveData, this(或者你传入的参数) ,NULL, 0);//忘记了函数参数啊 或者
ProcessData(ProcessReceiveData);
最后将该数据在编辑框中显示出来就可以了
(CEdit*)GetDlgItem(ID_xxx)->SetWindowsText("DATA");
只是提供一个思路
static DWORD WINAPI ReceiveData(LPVOID lpParam); //线程函数
static WORD ProcessReceiveData(void* data);
void ProcessData(DWORD (*Func)(void*) ); //回调函数
然后再你接收数据的地方创建一个线程或者回调函数来处理你从串口接收到的数据:
CreateThread(NULL, 0, ReceiveData, this(或者你传入的参数) ,NULL, 0);//忘记了函数参数啊 或者
ProcessData(ProcessReceiveData);
最后将该数据在编辑框中显示出来就可以了
(CEdit*)GetDlgItem(ID_xxx)->SetWindowsText("DATA");
只是提供一个思路
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询