昨天,我开始进行一些串口通信。今天,我试着打开我昨天使用的完全相同的草图。它工作,但几分钟后,当我再次上传它,它根本不起作用。
以下是代码:
#include "Blink_main.h"
int pin = 1;
void pulsePin(int abc, int length){
digitalWrite(abc, true);
delay(length);
digitalWrite(abc, false);
}
void setup() {
pinMode(pin, OUTPUT);
Serial.begin(9600);
Serial.println("Hi serial!");
pulsePin(pin, 1000);
}
void loop() {
if(Serial.available() > 0){
Serial.println(Serial.read());
pulsePin(pin, 1000);
}
}
打开应用程序时,我看不到“Hi serial!”消息,当发送东西时,我没有收到消息,我也看不到LED闪烁。为什么会这样?
答案 0 :(得分:3)
您正在使用引脚1使LED闪烁,将LED移至另一个引脚,因为它用作串行TX
数字引脚0-1 /串行输入/输出 - TX / RX - 如果您还使用串行通信(例如Serial.begin),则这些引脚不能用于数字i / o(digitalRead和digitalWrite)。
答案 1 :(得分:1)
看起来这个问题来自Arduino董事会。
首先,尝试上传Serial示例草图。 如果它不起作用,请尝试重新安装驱动程序或更改使用的COM端口。
如果问题仍然存在,那可能是死机的ATMEGA8U2或ATMEGA16U2。您可以使用外部USB测试直接在引脚0和1上进行UART转换