串口不发送数据

时间:2014-05-06 07:53:33

标签: c serial-port arduino embedded

昨天,我开始进行一些串口通信。今天,我试着打开我昨天使用的完全相同的草图。它工作,但几分钟后,当我再次上传它,它根本不起作用。

以下是代码:

#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闪烁。为什么会这样?

2 个答案:

答案 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转换