合宙 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组引脚,可得到以下效果。