| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- /**********************************
- * 文件名称: 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_ */
|