Files
3d_contorl/Core/Bsp/bsp_uart.h
2026-03-21 01:49:41 +08:00

60 lines
1.0 KiB
C

/**
* @file bsp_uart.h
* @brief UART1 communication driver (DMA + IDLE interrupt for MQTT)
*/
#ifndef __BSP_UART_H
#define __BSP_UART_H
#include "main.h"
#include <stdint.h>
#include <stdbool.h>
#define UART1_RX_BUF_SIZE 256
/* Exported functions prototypes */
void BSP_UART1_Init(void);
/**
* @brief Send data via UART1 (blocking)
*/
uint16_t BSP_UART1_Send(uint8_t *data, uint16_t len);
/**
* @brief Send string via UART1 (blocking)
*/
uint16_t BSP_UART1_SendString(const char *str);
/**
* @brief Get received data length
*/
uint16_t BSP_UART1_GetRxLen(void);
/**
* @brief Read data from rx buffer
*/
uint16_t BSP_UART1_Read(uint8_t *buf, uint16_t len);
/**
* @brief Clear rx buffer (restart DMA)
*/
void BSP_UART1_ClearRxBuf(void);
/**
* @brief Check if data received
*/
bool BSP_UART1_IsDataReceived(void);
/**
* @brief Process received data (call in main loop)
*/
void BSP_UART1_Process(void);
/**
* @brief IDLE interrupt handler (call from ISR)
*/
void BSP_UART1_IDLE_IRQHandler(void);
#endif