#include <SoftwareSerial.h>
SoftwareSerial TempSerial(21, 22); // Define the RX and TX pins for softwareSerial
void setup(){
TempSerial.begin(115200); //串口初始化
}
void loop(){
while (TempSerial.available() > 0){
val = TempSerial.read();
Serial.println(val);
}
}
1.安裝UART驅動程序→uart_driver_install
2.對UART通信參數進行配置→uart_param_config
3.設置UART通信引腳→uart_set_pin
4.從串口接收數據→uart_read_bytes
5.從串口發送數據→uart_write_bytes
初始化涵數寫法如下:
void InitializeEchoUart() {
uart_config_t uart_config = {
.baud_rate = ECHO_UART_BAUD_RATE,
.data_bits = UART_DATA_8_BITS,
.parity = UART_PARITY_DISABLE,
.stop_bits = UART_STOP_BITS_1,
.flow_ctrl = UART_HW_FLOWCTRL_DISABLE,
.source_clk = UART_SCLK_DEFAULT,
};
int intr_alloc_flags = 0;
ESP_ERROR_CHECK(uart_driver_install(ECHO_UART_PORT_NUM, BUF_SIZE * 2, 0, 0, NULL, intr_alloc_flags));
ESP_ERROR_CHECK(uart_param_config(ECHO_UART_PORT_NUM, &uart_config));
ESP_ERROR_CHECK(uart_set_pin(ECHO_UART_PORT_NUM, UART_ECHO_TXD, UART_ECHO_RXD, UART_ECHO_RTS, UART_ECHO_CTS));
//SendUartMessage("y");
}
發送UART命令的涵數如下:
void SendUartMessage(const char * command_str) {
uint8_t len = strlen(command_str);
uart_write_bytes(ECHO_UART_PORT_NUM, command_str, len);
ESP_LOGI(TAG, "Sent command: %s", command_str);
}