Files
ip2-wireless-mcu-code/main/peripherals/uart_serial.h
T
2026-09-28 11:39:34 +02:00

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