577|0

113

帖子

4

TA的资源

一粒金砂(高级)

楼主
 

【Beetle ESP32 C6迷你开发板】多功能桌面空气质量检测仪-03自带USB串口控制灯的颜色 [复制链接]

本帖最后由 eew_cT3H5d 于 2024-5-22 20:59 编辑

一、USB串口作用(Beetle ESP32 C6没有USB转串口芯片,怎么才能使用USB虚拟串口呢?)

串口调试在嵌入式系统开发中起着至关重要的作用,主要用于以下几个方面:

  1. 确认串口状态:通过系统信息(如/proc系统信息)或设备节点(如dmesg | grep ttyS)来确认串口是否正常工作

  2. 配置和测试串口参数:使用stty命令等工具来配置串口的波特率、数据位、奇偶校验位等参数,并进行自检以确保串口功能正常

  3. 数据收发:串口调试助手可以用于发送和接收数据。它允许用户通过电脑端的串口线与另一端的设备进行通信,实现数据的发送和接收

  4. 硬件调试:串口调试助手不仅用于软件调试,还可以用于硬件调试。通过配置好串口参数,可以对硬件设备进行详细的测试和调试

  5. 数据监控和分析:在工控领域,串口调试工具广泛应用于数据监控、数据采集和数据分析等工作,是串口应用开发及调试工作必备的专业工具之一

  6. 协议解析和显示:一些高级的串口调试助手支持多种串口通信协议,并能够实现串口数据的发送、接收、显示和解析等功能

  7. 扩展命令和自定义设置:一些串口调试工具提供了扩展命令和自定义命令列表的功能,使得用户可以创建和保存多条命令,方便进行复杂的数据发送和接收操作

  8. 虚拟串口模拟:对于没有物理串口的电脑,可以使用虚拟串口模拟器来模拟串口通信,这在调试和测试过程中非常有用

综上所述,串口调试在嵌入式系统开发中具有多种功能,不仅可以用于确认和测试串口状态和参数,还可以用于数据收发、硬件调试、数据监控和分析等多个方面,是一个非常重要的工具。

Beetle ESP32 C6和其它Arduino开发板类似单片机直接通过USB与电脑USB进行通讯,只不过需要进行设置才能使用串口功能,DFrobot这款官网介绍也是不是特别清楚,比较含糊的告诉你,需要设置才能使用USB虚拟串口

官网链接:https://wiki.dfrobot.com.cn/SKU_DFR1117_Beetle_ESP32_C6#target_6

 

 

二、尝试使用自带的USB串口

查阅一些案例,和Arduion的产品特点,感觉Beetle ESP32 C6可以通过自带USB进行串口通讯的

参考教程:https://mc.dfrobot.com.cn/thread-318977-1-1.html

                 https://docs.espressif.com/projects/esp-idf/en/latest/esp32c6/get-started/establish-serial-connection.html

尝试写个程序进行调试:串口

以下是重点:

  • 检查USB CDC是否处于Enable状态
  • 使用其他的串口调试助手查看打印信息

 

程序代码:

int ledPin = 15;

void setup() {
  Serial.begin(115200);
  pinMode(ledPin, OUTPUT);
}

void loop() {

  if (Serial.available()) {
    int receivedData = Serial.read();
    if (receivedData == '1') {
      digitalWrite(ledPin, HIGH);
    } else if (receivedData == '0') {
      digitalWrite(ledPin, LOW);
    }
  }
  delay(100);

  Serial.println("Hell EEWORLD! ");
}

成功通过USB串口接收到数据

              

 

三、通过USB串口控制ws2812颜色变化

 

代码:

int ledPin = 15;
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
 #include <avr/power.h> // Required for 16 MHz Adafruit Trinket
#endif

// Which pin on the Arduino is connected to the NeoPixels?
#define PIN        6 // On Trinket or Gemma, suggest changing this to 1

// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS 16 // Popular NeoPixel ring size

// When setting up the NeoPixel library, we tell it how many pixels,
// and which pin to use to send signals. Note that for older NeoPixel
// strips you might need to change the third parameter -- see the
// strandtest example for more information on possible values.
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

#define DELAYVAL 500 // Time (in milliseconds) to pause between pixels







void setup() {
  Serial.begin(115200);
  pinMode(ledPin, OUTPUT);

  #if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
  clock_prescale_set(clock_div_1);
  #endif
  // END of Trinket-specific code.
  pixels.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)


  //pixels.clear(); // Set all pixel colors to 'off'
}

void loop() {

  if (Serial.available()) {
    int receivedData = Serial.read();
    if (receivedData == '1') {
      digitalWrite(ledPin, HIGH);
    pixels.setPixelColor(1, pixels.Color(0, 150, 0));
    pixels.show();   // Send the updated pixel colors to the hardware.
    } 
    
    
    else if (receivedData == '2') 
    {
    pixels.setPixelColor(1, pixels.Color(150, 0, 0));
    pixels.show();   // Send the updated pixel colors to the hardware.
    }
    else if (receivedData == '3') 
    {
      digitalWrite(ledPin, LOW);
    pixels.setPixelColor(1, pixels.Color(0, 0, 150));
    pixels.show();   // Send the updated pixel colors to the hardware.
    }
  }
  delay(100);

  Serial.println("Hell EEWORLD! ");
}

 

显示效果

 

 

演示视频

 

串口控制WS2812颜色

 

 

此帖出自无线连接论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表