串口通信是开发板没有配置相应显示器件情况下,最基本的调试工具。 在ESP32-S3(N4) IoT开发板上要要以Arduino IDE来实现串口通信功能,要比在其他开发环境下容易些,它只需几条简单的语句即可解决问题。 其测试的程序如下: - void setup() {
- Serial.begin(9600);
- }
- void loop(){
- Serial.println(“ESP32-S3(N4) IoT”);
- delay(1000);
- }
经程序的上传,其处理结果如图1所示,说明测试结果正常。
图1 输出结果
使用串口通讯除了输出信息,能否发送字节数据以控制外部设备呢? 方法是使用数组及Serial.write()语句,其测试程序如下: - int myPins[] = {0x32, 0x34,0x38, 0x33,0x36};
- void setup() {
- Serial.begin(9600);
- }
- void loop(){
- int i;
- for (i = 0; i < 5; i = i + 1)
- {
- Serial.write(myPins[i]);
- }
- delay(1000);
- }
至此,是否就可以通过串口来控制外设呢 ? 此时还不行,因为当前开发板所使用的串口是以USB的方式来传送信息,它没有引出串口引脚可供使用,为此需要选取的串口引脚来使用。 这里选取UART0 来,其使用的引脚为GPIO43、GPIO44,其中GPIO44作为RXD0,GPIO43作为TXD0,见图2所示。 图2 串口引脚
对于MP3语音模块来说,要对其进行控制,就需将控制指令写入数组再予以发送。 实现播放控制的程序如下: - #include "HardwareSerial.h"
- #define RxPin 44
- #define TxPin 43
- HardwareSerial Serialp(1);
- void setup() {
- Serialp.begin(9600,SERIAL_8N1,RxPin,TxPin);
- }
- void loop() {
- int i;
- int cmd[10]={0X7E, 0xFF, 0x06, 0X0D, 00, 00, 00, 0xFE, 0xEE, 0XEF}; // play
- for (i = 0; i < 10; i = i + 1)
- {
- Serialp.write(cmd[i]);
- }
- delay(1000);
- }
经程序的上传,其测试结果如图3所示。 图3 测试结果 除了发送信息,串口输入信息也是很重要的,实现数据读取的语句为Serial.read();,其测试程序如图4所示。 图4测试程序 经程序的上传,其测试结果图5所示。 图5 测试结果
|