合宙 esp32c3 双串口测试 & esp32 三组串口测试

合宙 esp32c3 双串口测试

根据合宙文档定义好双串口配置后,使用ttl-usb调试线分别接UART0和UART1后可分别输出0或1字符串

实例

#include <Arduino.h>


void setup()
{
  Serial.begin(9600);
  Serial1.begin(9600, SERIAL_8N1, 0, 1);
}

void loop()
{
  delay(1000);
  Serial.println("0");
  Serial1.println("1");
}


使用platformIO配置合宙esp32C3开发板的ini如下

[env:esp32-c3-devkitm-1]
platform = espressif32
board = esp32-c3-devkitm-1
framework = arduino
board_build.flash_mode = dio

esp32 三组串口测试

ESP32 芯片有3 个 UART 接口,UART0,UART1,UART2,支持异步通信和 IrDA,通信速度最高可达 5Mbps,3 个接口可以被 DMA 或 CPU 直接访问,3 个串口带发送接收 FIFO,共享 1024*8bit 的 RAM,通过串口,我们可以非常方便的跟其它外设进行通信或者打印数据。

通过HardwareSerial.cpp可知各类开发板默认串口的引脚,且S2与C3只有2组串口

示例

本示例使用ESP32开发板进行测试,但由于UART1引脚未在开发板引出,因此使用18、19代替

点击查看代码

#include <Arduino.h>

#define index_0 0
#define index_1 1
#define index_2 2

// esp32 默认3组串口引脚
// #define SOC_RX0 3
// #define SOC_TX0 1
// #define RX1 9
// #define TX1 10
// #define RX2 16
// #define TX2 17

// 测试数
u_int32_t num = 0;

void setup()
{
  // void begin(unsigned long baud, uint32_t config=SERIAL_8N1, int8_t rxPin=-1, int8_t txPin=-1, bool invert=false, unsigned long timeout_ms = 20000UL, uint8_t rxfifo_full_thrhd = 112);

  Serial.begin(115200);
  Serial1.begin(115200, SERIAL_8N1, 18, 19, false); // RX TX
  Serial2.begin(115200);
}

void loop()
{
  num++;
  delay(1000);
  Serial.printf("Uart  %d : %d\n", index_0, num);
  Serial1.printf("Uart  %d : %d\n", index_1, num);
  Serial2.printf("Uart  %d : %d\n", index_2, num);
}


将程序使用板载USB或默认串口UART0烧录之后,打开串口助手,使用ttl分别连接上图红线所标RX0,TX0, 18,19,RX2,TX2的3组引脚,可得到以下效果。


posted @ 2022-08-12 17:15  Dapenson  阅读(3465)  评论(0编辑  收藏  举报