前些天一直用Arduino UNO测试软串口读取PM2.5温湿度传感器,今天测试一下ESP32的3个物理串口功能,同也把之前的代码优化了一下,写成函数方便调用。
#include <HardwareSerial.h>
HardwareSerial MySerial1(1);
unsigned char pm25ask[9] = {0xFF, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07};
int back_data[40];
void setup() {
Serial.begin(115200);
MySerial1.begin(9600, SERIAL_8N1, 16, 17); //U1RXD=GPIO16,U1TXD=GPIO17
}
由于需要利用默认串口向HMI串口屏发送指令,这里将GPIO16、17定义为Serial1,设置与传感器相同速率9600;
pm25ask[9] = {0xFF, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07}是向传感器发送问询的数据指令,传感器应答帧长度40位;