/********************************** * 文件名称: uart_communication.h * 功能描述: 串口通信头文件 **********************************/ #ifndef __UART_COMMUNICATION_H_ #define __UART_COMMUNICATION_H_ //============================== UART 通信配置 ============================== // USART1 使用 PB6(TX)和PB7(RX) // 串口选择 #define UART_COMM USART1 #define UART_COMM_CLK RCC_APB2Periph_USART1 #define UART_COMM_IRQ USART1_IRQn // TX 引脚 (PB6) #define UART_COMM_TX_PIN GPIO_Pin_6 #define UART_COMM_TX_GPIO_PORT GPIOB #define UART_COMM_TX_GPIO_CLK RCC_AHB1Periph_GPIOB #define UART_COMM_TX_SOURCE GPIO_PinSource6 #define UART_COMM_TX_AF GPIO_AF_USART1 // RX 引脚 (PB7) #define UART_COMM_RX_PIN GPIO_Pin_7 #define UART_COMM_RX_GPIO_PORT GPIOB #define UART_COMM_RX_GPIO_CLK RCC_AHB1Periph_GPIOB #define UART_COMM_RX_SOURCE GPIO_PinSource7 #define UART_COMM_RX_AF GPIO_AF_USART1 // 波特率 #define UART_BAUDRATE 2000000 // 发送接收缓冲区大小 #define UART_BUFFER_SIZE 256 // DMA 配置 #define UART_DMA_TX_STREAM DMA2_Stream7 #define UART_DMA_TX_CHANNEL DMA_Channel_4 #define UART_DMA_TX_IRQn DMA2_Stream7_IRQn #define UART_DMA_TX_IRQHandler DMA2_Stream7_IRQHandler #define UART_DMA_RX_STREAM DMA2_Stream5 #define UART_DMA_RX_CHANNEL DMA_Channel_4 #define UART_DMA_RX_IRQn DMA2_Stream5_IRQn #define UART_DMA_RX_IRQHandler DMA2_Stream5_IRQHandler #define UART_DMA_CLK RCC_AHB1Periph_DMA2 // 全局变量声明 extern volatile uint16_t com1_rx_len; extern volatile uint8_t com1_recv_end_flag; extern uint8_t com1_rx_buffer[]; extern uint8_t DMA_USART1_TX_BUF[]; // 函数声明 extern void uart_communication_init(void); extern void uart_send_data(uint8_t *data, uint16_t length); extern void uart_send_float(float value); extern void uart_send_int(int32_t value); extern void uart_send_char(uint8_t ch); extern void uart_send_string(char *str); extern void DMA_USART_COMM_Send(uint8_t *data, uint16_t size); extern uint8_t uart_is_data_available(void); extern uint16_t uart_get_received_data(uint8_t *buffer, uint16_t max_len); #endif /* __UART_COMMUNICATION_H_ */