CSerialPort教程(10) - CSerialPort的DTR和RTS功能

本文介绍了如何利用CSerialPort库的DTR和RTS功能与ESP32C3开发板进行交互。在DTR高电平时,D4或D5亮起;低电平时,D4和D5交替闪烁。RTS低电平时,ESP32C3会重启。文章提供了CSerialPort测试程序和CommQT示例,帮助开发者进行实践操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CSerialPort教程(10) - CSerialPort的DTR和RTS功能

前言

CSerialPort项目是基于C++的轻量级开源跨平台串口类库,用于实现跨平台多操作系统的串口读写。

CSerialPort项目的开源协议自 V3.0.0.171216 版本后采用GNU Lesser General Public License v3.0

为了让开发者更好的使用CSerialPort进行开发,特编写基于4.x版本的CSerialPort教程系列。

本文将介绍如何使用CSerialPort的DTR和RTS功能。

注意:CSerialPort的DTR和RTS功能需要v4.3.0及以上版本。

CSerialPort项目地址:

1. 硬件准备

开发板:合宙ESP32C3经典版
IDE:Arduino IDE 2.1.0 (esp32@2.0.8)
USB驱动:CH343SER

2. ESP32C3的DTR和RTS测试程序

功能:

  • DTR高电平时,D4或D5亮起,并在串口打印字符串DTR 1
  • DTR低电平时,D4 D5每个1秒交替亮起,并在串口打印字符串DTR 0
  • RTS低电平时,ESP32C3重启,并在串口打印字符串 INIT

代码:

  • CSerialPort_DTR_RTS.ino
// test DTR and RTS for CSerialPort(https://github.com/itas109/CSerialPort)
#define LED_D4_PIN 12   // D4
#define LED_D5_PIN 13   // D5
#define BTN_BOOT_PIN 9  // BOOT Button

// BOOT <---> DTR
// RST  <---> RTS

// DTR(1) => D4 or D5 on
// DTR(0) => D4 D5 alternate flashing per 1 second
// RTS(1) => nothing
// RTS(0) => ESP32 restart, then serial print "INIT"

void setup() {
  Serial.begin(9600);
  Serial.println("INIT");

  pinMode(BTN_BOOT_PIN, INPUT);
  pinMode(LED_D4_PIN, OUTPUT);
  pinMode(LED_D5_PIN, OUTPUT);

  digitalWrite(LED_D4_PIN, HIGH);
  digitalWrite(LED_D5_PIN, LOW);
}

void loop() {
  if (LOW == digitalRead(BTN_BOOT_PIN)) {
    digitalWrite(LED_D4_PIN, !digitalRead(LED_D4_PIN));
    digitalWrite(LED_D5_PIN, !digitalRead(LED_D5_PIN));
    Serial.println("DTR 0");
    delay(1000);
  } else {
    Serial.println("DTR 1");
    delay(1000);
  }
}

3. CSerialPort测试程序

这里使用CSerialPort中的example代码(CSerialPort/examples/CommQT)

注意:CSerialPort的DTR和RTS功能需要v4.3.0及以上版本。

测试步骤:

  • 编译并运行CommQT
  • 选择ESP32C3的串口,波特率选择9600
  • 选中DTR,D4 D5每个1秒交替亮起,并在串口打印字符串DTR 0
  • 取消选中DTR,D4或D5亮起,并在串口打印字符串DTR 1
  • 选中RTS,ESP32C3重启,并在串口打印字符串 INIT

Reference:

  1. https://github.com/itas109/CSerialPort
  2. https://gitee.com/itas109/CSerialPort
  3. https://blog.csdn.net/itas109
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

itas109

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值