就是第一次config esp32c3 想找一下幫助
現在在弄一個esp32 c3 的板子 連接jw01 是個eo2 sensor 用UART interface . 不太懂傳輸數據的code
希望有人能幫我一下子。因為沒什麼資料能解決。
```c++
#include <stdio.h>
#include "driver/uart.h"
#include "esp_log.h"
#include "driver/gpio.h"
#define UART_NUM UART_NUM_0
#define BAUD_RATE 9600
#define RX (GPIO_NUM_20)
#define TX (GPIO_NUM_21)
void read_jw01_co2(uint16_t* co2) {
const uint8_t cmd[] = {0x2c,0x00,0x00,0x03,0xFF,0x00};
uint8_t rx_data[9];
uart_write_bytes(UART_NUM, (const char*)rx_data, sizeof(rx_data));
uart_read_bytes(UART_NUM, rx_data, sizeof(rx_data), pdMS_TO_TICKS(1000));
if (rx_data[0] != 0x2c) {
ESP_LOGE("JW01 CO2", "Error reading data: invalid response");
return;
}
*co2 = (rx_data[2] << 8) | rx_data[3];
}
void app_main(void) {
uart_config_t uart_config = {
.baud_rate = BAUD_RATE,
.data_bits = UART_DATA_8_BITS,
.parity = UART_PARITY_DISABLE,
.stop_bits = UART_STOP_BITS_1,
.flow_ctrl = UART_HW_FLOWCTRL_DISABLE,
};
ESP_ERROR_CHECK(uart_param_config(UART_NUM, &uart_config));
uart_param_config(UART_NUM, &uart_config);
uart_set_pin(UART_NUM,TX,RX, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE);
uart_driver_install(UART_NUM, 2048, 2048, 0, NULL, 0);
ESP_ERROR_CHECK(uart_set_pin(UART_NUM,TX,RX, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE));
uint16_t co2;
while (1) {
read_jw01_co2(&co2);
printf("CO2: %d ppm\n", co2);
vTaskDelay(pdMS_TO_TICKS(1000));
}
}
```