我想连接Arduino nano和GNSS (SIMCom的SIM33ELA独立GNSS模块)。
首先,我为rx/tx编写了一个程序,它工作得很好,但是现在我想使用Software,我得到了一些错误的数据。
#include <SoftwareSerial.h>
char incomingByte; // for incoming serial data
double tbs;
SoftwareSerial mySerial(8, 9); // RX, TX
void setup() {
Serial.begin(115200);
while (!Serial) {
}
mySerial.begin(115200);
while (!mySerial) {
}
}
void loop() {
if (mySerial.available()) {
tbs = mySerial.read();
incomingByte = (char)tbs;
Serial.print(incomingByte);
}
/*if (Serial.available() > 0) {
incomingByte = Serial.read();
Serial.print(incomingByte);
}*/
}知道吗?
关于结果的图片:
发布于 2017-05-30 02:31:51
大多数情况下,不要将一个字符读入double浮点变量.就这么做吧:
void loop()
{
if (mySerial.available()) {
char c = mySerial.read();
Serial.write( c );
}
}您还应该在这两个引脚上使用AltSoftSerial。SoftwareSerial效率很低,因为它在很长一段时间内禁用中断。它不能同时发送和接收。事实上,当一个字符被传送或接收时,Arduino不能做任何其他的事情。
对于GPS库,您可以尝试NeoGPS。这是唯一一个可以解析最新设备句子的Arduino库。它也比所有其他库更小、更快、更可靠和更精确。
https://stackoverflow.com/questions/44249368
复制相似问题