| 本帖最后由 腿毛利小五郎 于 2024-4-22 23:54 编辑 
 
 基于Beetle ESP32 C6实现串口透传前言Beetle ESP32 C6体积小串口资源丰富。探索串口数据透传功能,意在可添加DTU模组,作为中继实现获取其他传感器数据发送至DTU模块透传数据,本文将探索实现Beetle ESP32 C6的串口数据透传。 
 所需材料
 
 一、Beetle ESP32 C6开发板 二、USB转TTL * 2 三、杜邦线若干 硬件连接
 
 
 
 typeC线接电脑监视, 现测试中使用2个串口工具作为传感器和DTU模块。如下: 
 
 代码
 上位机调试显示复制代码#include <Arduino.h>
#include <HardwareSerial.h>
unsigned short i;
uint8_t temp;
uint8_t received_data[2048]; // 创建一个全局数组来保存接收到的数据
uint8_t received_data2[2048]; // 创建一个全局数组来保存接收到的数据
uint32_t send_type = 0;
unsigned long lastPacketTime = 0;
// 清理串口读取缓存区的缓存
void clear_usart_buffer() {
  i = Serial0.available();
  if(i != 0) {
    Serial.print("清空串口接收区的缓存......");
    Serial.println(Serial0.available());
    while(i--) Serial0.read(); // 读取并删除一个数据
    for(int j = 0; j < sizeof(received_data); j++) { // 清空数组
      received_data[j] = 0;
    }
  } else {
    //Serial.println("串口接收区的缓存为空!!!");
  }
}
// 读取串口数据并保存到数组
void read_usart() {
  i = Serial0.available(); // 返回目前串口接收区内的已经接受的数据量
  int index = 0; // 创建一个索引来跟踪数组的当前位置
  if(i != 0) {
    Serial.print("串口接收到的数据量为:");
    Serial.println(Serial0.available());
    while(i--) {
      temp = Serial0.read(); // 读取并删除一个数据
      received_data[index] = temp; // 将数据保存到数组中
      index++; // 增加索引
      Serial.print(temp);
    }
    received_data[index] = '\0'; // 在数组的末尾添加一个空字符,以标记字符串的结束
    Serial.println("");
    Serial.print("接收到的数据为: ");
    for(int j = 0; j < index; j++) { // 打印接收到的数据
      Serial.print(received_data[j], HEX);
      Serial.print(" ");
    }
    Serial.println("");
    Serial1.write(received_data,index);//向上传发送
  } else {
    Serial.println("串口接收区没有数据!");
  }
}
void setup() {
  Serial.begin(115200); // 开启串口,设置波特率为115200
  Serial0.begin(9600, SERIAL_8N1, /*rx =*/17, /*Tx =*/16);//传感器吐得数据
  Serial1.begin(9600,SERIAL_8N1,/*rx =*/4,/*Tx =*/5);//DTU
  clear_usart_buffer(); // 清空接收区缓存
}
void loop() {
  Serial.println("usart test!!!");
  read_usart();
  clear_usart_buffer();
  delay(10);
}
 
  
 总结
 Beetle ESP32 C6串口资源丰富,串口数据传输稳定,适合查询其他传感器数据然后发送至DTU模块透传数据,如果串口转接485模块,还可以利用根据485地址设置查询更多485并联的传感器设备做透传。
 
 
 
 
 
 |