gpt4 book ai didi

c++ - 正确发送消息 UART

转载 作者:行者123 更新时间:2023-11-30 03:21:30 27 4
gpt4 key购买 nike

在我的代码中,我有一个在事件(接收)发生时触发的串行中断。在那里,我将数据保存到缓冲区,然后发送缓冲区进行分析。我遇到的问题是,我如何才能从串行端口获取整个响应以同时缓冲而不只是一个字符?

Serial pc(USBTX, USBRX);
Serial sim(GSM_TX_PIN, GSM_RX_PIN);
count =0;
int main()
{
sim.attach(&dispatchMsg); //Interrupt handler
wait(1);

sim.puts("AT\r\n");

while()
{
}
}

void dispatchMsg()
{
while(sim.readable()){
char c = sim.getc();
buffer[count++] = c;
}

//Here i want to wait for whole response from uart instead i fetch only one char
void analyzeString(buffer);
}

void analyzeString(char* str)
{
/*Do something with the str ...*/
}

来自 sim 模块的传入响应示例:

AT
OK
ERROR
+CMGI: ...

集成开发环境:mbed

最佳答案

使用 ATCmdParser而不是使用原始 UART。它已经为您进行了解析和缓冲,并且是 Mbed OS 5 的一部分。

关于c++ - 正确发送消息 UART,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52047269/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com