MSComm控件调用get_Input()时,无法读取缓存内容
问题背景:
我用MFC写了一个串口接收程序,主要是用电脑接收GPS的信息。GPS接两块不同的串口转USB板子(一块是FT232转的一块是PL2303转的)测试,结果发现用FT232的板子数据接收都正常,但是用PL2303的板子就接收不了数据。
但是,如果用串口助手来模拟的话,两个板子都能正常通信。
我用的是MSComm控件,在调用get_Input()时,PL2303的板子无法读取缓存。单步调试,发现运行到oledisp2.cpp里面的InvokeHelperV函数时,里面的sc计算会不一样。具体的函数在这里面。
void COleDispatchDriver::InvokeHelperV(DISPID dwDispID, WORD wFlags,
VARTYPE vtRet, void* pvRet, const BYTE* pbParamInfo, va_list argList)
SCODE sc = m_lpDispatch->Invoke(dwDispID, IID_NULL, 0, wFlags,
&dispparams, pvarResult, &excepInfo, &nArgErr);