我正在研究两个 MCU 特别小的(类似于 Arduino)之间的串行通信,以生成假 GPS 数据。我已经能够很好地写入 GPS 数据并从其他 MCU 读取,但如果你仔细观察,打印的数据有些模糊。最后一个值以某种方式更改,我不明白为什么这是因为 sprintf 命令或将浮点数转换为字符串或什么?
一些帮助将不胜感激。
以下是串行终端的工作代码和片段。
谢谢
float lat = 37.4980608;
char str1[21];
void setup()
{
Serial3.begin(115200);
Serial.begin(115200); // Config serial port (USB)
while(!Serial);
while(!Serial3);
Serial.println("Sending gps data");
}
void loop()
{
sprintf(str1, "%.7f%.7f", lon, lat);
Serial.println(str1);
Serial3.write(str1);
Serial3.flush();
delay(500);
}