uart_communication.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /**********************************
  2. * 文件名称: uart_communication.h
  3. * 功能描述: 串口通信头文件
  4. **********************************/
  5. #ifndef __UART_COMMUNICATION_H_
  6. #define __UART_COMMUNICATION_H_
  7. //============================== UART 通信配置 ==============================
  8. // USART1 使用 PB6(TX)和PB7(RX)
  9. // 串口选择
  10. #define UART_COMM USART1
  11. #define UART_COMM_CLK RCC_APB2Periph_USART1
  12. #define UART_COMM_IRQ USART1_IRQn
  13. // TX 引脚 (PB6)
  14. #define UART_COMM_TX_PIN GPIO_Pin_6
  15. #define UART_COMM_TX_GPIO_PORT GPIOB
  16. #define UART_COMM_TX_GPIO_CLK RCC_AHB1Periph_GPIOB
  17. #define UART_COMM_TX_SOURCE GPIO_PinSource6
  18. #define UART_COMM_TX_AF GPIO_AF_USART1
  19. // RX 引脚 (PB7)
  20. #define UART_COMM_RX_PIN GPIO_Pin_7
  21. #define UART_COMM_RX_GPIO_PORT GPIOB
  22. #define UART_COMM_RX_GPIO_CLK RCC_AHB1Periph_GPIOB
  23. #define UART_COMM_RX_SOURCE GPIO_PinSource7
  24. #define UART_COMM_RX_AF GPIO_AF_USART1
  25. // 波特率
  26. #define UART_BAUDRATE 2000000
  27. // 发送接收缓冲区大小
  28. #define UART_BUFFER_SIZE 256
  29. // DMA 配置
  30. #define UART_DMA_TX_STREAM DMA2_Stream7
  31. #define UART_DMA_TX_CHANNEL DMA_Channel_4
  32. #define UART_DMA_TX_IRQn DMA2_Stream7_IRQn
  33. #define UART_DMA_TX_IRQHandler DMA2_Stream7_IRQHandler
  34. #define UART_DMA_RX_STREAM DMA2_Stream5
  35. #define UART_DMA_RX_CHANNEL DMA_Channel_4
  36. #define UART_DMA_RX_IRQn DMA2_Stream5_IRQn
  37. #define UART_DMA_RX_IRQHandler DMA2_Stream5_IRQHandler
  38. #define UART_DMA_CLK RCC_AHB1Periph_DMA2
  39. // 全局变量声明
  40. extern volatile uint16_t com1_rx_len;
  41. extern volatile uint8_t com1_recv_end_flag;
  42. extern uint8_t com1_rx_buffer[];
  43. extern uint8_t DMA_USART1_TX_BUF[];
  44. // 函数声明
  45. extern void uart_communication_init(void);
  46. extern void uart_send_data(uint8_t *data, uint16_t length);
  47. extern void uart_send_float(float value);
  48. extern void uart_send_int(int32_t value);
  49. extern void uart_send_char(uint8_t ch);
  50. extern void uart_send_string(char *str);
  51. extern void DMA_USART_COMM_Send(uint8_t *data, uint16_t size);
  52. extern uint8_t uart_is_data_available(void);
  53. extern uint16_t uart_get_received_data(uint8_t *buffer, uint16_t max_len);
  54. #endif /* __UART_COMMUNICATION_H_ */