//#include <stdio.h>
//#include "freertos/FreeRTOS.h"
//#include "freertos/task.h"
#include "driver/uart.h"
#define UART_NUM_UART1 1
#define UART_BAUD_RATE 19200
#define UART_DATA_BITS 8
#define UART_PARITY UART_PARITY_DISABLE
#define UART_STOP_BITS UART_STOP_BITS_1
#define UART_FLOW_CTRL UART_HW_FLOWCTRL_DISABLE
static const char *TAG = "UART";
void uart_init()
{
uart_config_t uart_config = {
.baud_rate = UART_BAUD_RATE,
.data_bits = UART_DATA_BITS,
.parity = UART_PARITY,
.stop_bits = UART_STOP_BITS,
.flow_ctrl = UART_FLOW_CTRL,
.source_clk = UART_SCLK_APB,
};
// 配置UART0
ESP_ERROR_CHECK(uart_param_config(UART_NUM_UART1, &uart_config));
// 設置UART引腳
ESP_ERROR_CHECK(uart_set_pin(UART_NUM_UART1, GPIO_NUM_17, GPIO_NUM_16, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE));
// 安裝UART驅動程式
ESP_ERROR_CHECK(uart_driver_install(UART_NUM_UART1, BUF_SIZE * 2, 0, 0, NULL, 0));
}
void send_data(char start_char, const char* data)
{
// 組合完整的資料
char send_buffer[128]; // 根據需要調整緩衝區大小
snprintf(send_buffer, sizeof(send_buffer), "%c %s\r", start_char, data);
ESP_LOGI(TAG, "Sending data: %s", send_buffer);
ESP_ERROR_CHECK(uart_write_bytes(UART_NUM_UART1, send_buffer, strlen(send_buffer)));
}
void app_main(void)
{
uart_init();
while (1) {
send_data('A', "Hello, world!");
vTaskDelay(1000 / portTICK_PERIOD_MS);
send_data('T', "This is a test.");
vTaskDelay(1000 / portTICK_PERIOD_MS);
Serial.println("Hello, UART_End");
vTaskDelay(5000 / portTICK_PERIOD_MS);
}
}