在 Serial.write(a); , a 等于'A'?或者你的意思是 Serial.write('A') ?
Serial.write(a);
a
Serial.write('A')
附:实际上你可以通过1英尺的线路为串口制作便宜的“嗅探器”。连接到DB9连接器,插入COM端口(或USB转串口适配器),并“查看”arduino RX \ TX线路上的实际数据。
请声明 char a='A' 然后写下面的内容。
char a='A'
char a='A'; void setup() { Serial.begin(9600); } void loop() { Serial.write(a); delay(10); }
在上传脚本之前,只需删除RX TX连接,上传成功后重新连接并重新连接。 此时设置数据速率并不重要,因为即使两个芯片之间的数据速率不匹配(最有可能发生),您将得到的错误是数据失真,因此您将进行传输而不是你想要的方式
你把Serial.begin(9600)放在每个主板的设置功能中了吗? 如果您在UNO上发布核心运行它也会有所帮助。 或者至少确认您已经确认它有效,例如用PC替换Nano,就像OP写的那样。 UNO在TX和RX线上都有LED,因此如果使用“真正的”串行端口,您可以轻松验证是否有任何传输。 arduino ide还带有集成的,易于使用的串口嗅探器。
上面提到的代码应该正常工作, 我建议你在尝试传输时为你的字符串创建一些校验和,因为两块板之间的串行连接对于大量数据来说不够稳定。
的 来自Arduino UNO 强>
void setup() { Serial.begin(9600); } void loop() { Serial.print("a"); }
的 来自Arduino NANO 强>
void setup() { Serial.begin(9600); if(Serial.available()>0) { char a = Serial.read(); } }