ESP32-C3开启两个UART(Arduino)

admin 11月前 603

 测评项目继续回到Arduino IDE,本篇记录开启C3的第二个串口——Arduino框架中的实例Serial1的过程。

1、Arduino框架中的实例定义

      Arduino开发可以直接使用Serial,其实它是框架中已经定义好的HardwareSerial类型的对象。ESP32 Arduino Package的“..\esp32\hardware\esp32\2.0.4\cores\esp32”路径下有HardwareSerial.cpp和HardwareSerial.h,它们就是Arduino中串口的代码实现。HardwareSerial.cpp中有Serial和Serial1实例的定义,HardwareSerial.h中有两个对象变量的导出(extern),另外begin()函数的传参也很多,只不过除了第一个波特率,其它参数都有默认值。

 

图5-1 Serial和Serial1定义

 

图5-2 HardwareSerial.begin()函数原型

#define LED 12     //IO10 for LED on board
bool flag = false; //LED status flag
void setup() {
  // Initialize GPIO
  pinMode(LED, OUTPUT);
  digitalWrite(LED, LOW);
  // Initialize USB-UART
  Serial.begin(115200);
  // Initialize UART1
  Serial1.begin(115200, SERIAL_8N1, /*rx =*/1, /*Tx =*/0);
}
int i = 0; //counter variable for Blink
void loop() {
  if (i++ >= 1000) {
    if (flag) {
      digitalWrite(LED, LOW);
      flag = false;
    }
    else     {
      digitalWrite(LED, HIGH);
      flag = true;
    }
    i = 0;
    Serial.print("0");
    Serial1.print("1");
  }
  delay(1);
}

欢迎联系本站长QQ:3216572
最新回复 (0)
返回