53 lines
1.3 KiB
C++
53 lines
1.3 KiB
C++
//
|
|
// Created by nano on 8/23/26.
|
|
//
|
|
|
|
#ifndef MCU_CODE_UART_SERIAL_H
|
|
#define MCU_CODE_UART_SERIAL_H
|
|
#include "driver/uart.h"
|
|
#include "freertos/queue.h"
|
|
#include "hal/uart_types.h"
|
|
#include "freertos/FreeRTOS.h"
|
|
#include "freertos/task.h"
|
|
#include "driver/uart.h"
|
|
#include "driver/gpio.h"
|
|
#include "sdkconfig.h"
|
|
#include "esp_log.h"
|
|
|
|
class uart_serial {
|
|
public:
|
|
explicit uart_serial(uart_port_t uart_port_num = UART_NUM_0, const gpio_num_t tx = GPIO_NUM_NC,
|
|
const gpio_num_t rx = GPIO_NUM_NC, int baudrate = 9600) : uart_num(uart_port_num), tx_pin_num(tx),
|
|
rx_pin_num(rx) {
|
|
uart_config.baud_rate = baudrate;
|
|
uart_config.data_bits = UART_DATA_8_BITS;
|
|
uart_config.parity = UART_PARITY_DISABLE;
|
|
uart_config.stop_bits = UART_STOP_BITS_1;
|
|
uart_config.flow_ctrl = UART_HW_FLOWCTRL_DISABLE;
|
|
|
|
init();
|
|
};
|
|
|
|
void uart_serial_dtor() const {
|
|
uart_driver_delete(uart_num);
|
|
}
|
|
void write(const char* data, int len);
|
|
void write_byte(const char* data);
|
|
|
|
int read(char* data,int len);
|
|
int read_byte(char* data);
|
|
|
|
private:
|
|
void init();
|
|
|
|
QueueHandle_t uart_queue = {};
|
|
const uart_port_t uart_num;
|
|
uart_config_t uart_config = {};
|
|
const gpio_num_t tx_pin_num;
|
|
const gpio_num_t rx_pin_num;
|
|
constexpr static int buffer_size = (1024);
|
|
};
|
|
|
|
|
|
#endif //MCU_CODE_UART_SERIAL_H
|