MFC通过串口读取Arduino模拟引脚数据波形异常问题
问题:ECG心率模块MFC波形绘制数据异常
我将ECG心率模块连接至电脑,希望在MFC应用中绘制波形图,使用了以下代码:
HANDLE m_hCom; CString m_sComPort = L"COM4"; CString strCommand; DCB m_dcb; DWORD iBytesRead; char sBuffer[128]; m_hCom = CreateFile(m_sComPort, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); SetupComm(m_hCom, 128, 128); GetCommState(m_hCom, &m_dcb); m_dcb.BaudRate = 9600; m_dcb.ByteSize = 8; m_dcb.Parity = NOPARITY; m_dcb.StopBits = ONESTOPBIT; m_dcb.fAbortOnError = TRUE; SetCommState(m_hCom, &m_dcb);
并在定时器函数中按如下方式读取数据:
ReadFile(m_hCom, &sBuffer, 127, &iBytesRead, NULL); ECG[Position] = atof(sBuffer);
通过该代码能获取到看似合理的值,但使用Visual Studio插件Serial Monitor 2查看时,数据存在差异,且其生成的绿色波形比我代码生成的橙色波形更可靠。
Arduino端代码如下:
void setup() { Serial.begin(9600); } void loop() { Serial.println(analogRead(A0)); delay(20); }
经检查,sBuffer数组出现异常值:
内容的提问来源于stack exchange,提问作者Medic 84
相关产品推荐
相关产品推荐

