[其它] 基于ESP32-S3(N4) IoT 开发板的串口通讯及语音播报

[复制链接]
530|0
Lily李 发表于 2025-9-28 09:31 | 显示全部楼层 |阅读模式
串口通信是开发板没有配置相应显示器件情况下,最基本的调试工具。
ESP32-S3(N4) IoT开发板上要要以Arduino IDE来实现串口通信功能,要比在其他开发环境下容易些,它只需几条简单的语句即可解决问题。
其测试的程序如下:
  1. void setup() {
  2.   Serial.begin(9600);      
  3. }

  4. void loop(){
  5.   Serial.println(“ESP32-S3(N4) IoT”);
  6.   delay(1000);           
  7. }
经程序的上传,其处理结果如图1所示,说明测试结果正常。

6887968d88f041271c.png
1 输出结果

使用串口通讯除了输出信息,能否发送字节数据以控制外部设备呢?
方法是使用数组及Serial.write()语句,其测试程序如下:
  1. int myPins[] = {0x32, 0x34,0x38, 0x33,0x36};

  2. void setup() {
  3.   Serial.begin(9600);        
  4. }

  5. void loop(){
  6.   int i;
  7.   for (i = 0; i < 5; i = i + 1)
  8.   {
  9.       Serial.write(myPins[i]);
  10.   }
  11.   delay(1000);           
  12. }

至此,是否就可以通过串口来控制外设呢
此时还不行,因为当前开发板所使用的串口是以USB的方式来传送信息,它没有引出串口引脚可供使用,为此需要选取的串口引脚来使用。
这里选取UART0 来,其使用的引脚为GPIO43GPIO44,其中GPIO44作为RXD0GPIO43作为TXD0,见图2所示
3605768d88f641b3da.png
2 串口引脚

对于MP3语音模块来说,要对其进行控制,就需将控制指令写入数组再予以发送。
实现播放控制的程序如下:
  1. #include "HardwareSerial.h"

  2. #define RxPin 44
  3. #define TxPin 43
  4. HardwareSerial Serialp(1);

  5. void setup() {
  6.    Serialp.begin(9600,SERIAL_8N1,RxPin,TxPin);
  7. }

  8. void loop() {
  9.    int i;
  10.    int cmd[10]={0X7E, 0xFF, 0x06, 0X0D, 00, 00, 00, 0xFE, 0xEE, 0XEF}; // play  
  11.    for (i = 0; i < 10; i = i + 1)
  12.    {
  13.         Serialp.write(cmd[i]);
  14.    }
  15.    delay(1000);
  16. }

经程序的上传,其测试结果如图3所示。
6047668d88fa0d96aa.png
3 测试结果
除了发送信息,串口输入信息也是很重要的,实现数据读取的语句为Serial.read();,其测试程序如图4所示。
8681168d88fbd35112.png
4测试程序
经程序的上传,其测试结果图5所示。
5702868d88fd3155e6.png
5 测试结果


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

本版积分规则

9

主题

11

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部