You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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数组出现异常值:
sBuffer数组异常值

内容的提问来源于stack exchange,提问作者Medic 84

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 12:15:05