ST H7 串口外设中断特性及FIFO缓冲机制分析-综合

281 阅读1分钟

1 STM32H743IIT 引脚说明

  • STM32H7xxx 系统控制器有四个 USART和四个 UART,其中 USART1 和 USART6 的时钟来源于 APB2/PLL2_Q/PLL3_Q/HIS/CSI/LSE 时钟,其最大频率为 100MHz,其他六个的时钟来源于 APB1/PLL2_Q/PLL3_Q/HIS/CSI/LSE 时钟,其最大频率为 100MHz。UART只是异步传输功能,所以没有 SCLK。 image.png

2 中断请求及标志说明

  • 使能发送中断(缓冲区空)
  • SET_BIT(_pUart->uart->CR1, USART_CR1_TXEIE);
  • SET_BIT(_pUart->uart->CR1, USART_CR1_TCIE); image.png
  • 使能RX接受非空中断
  • SET_BIT(UART4->CR1, USART_CR1_RXNEIE); image.png
  • 读取数据寄存器非空/RXFIFO 非空 image.png
  • 清除TC发送完成标志 ICR -> USART_ICR_TCCF image.png
  • 清除RXNE接收标志 RQR-> USART_RQR_RXFRQ image.png image.png
  • 发送数据寄存器为空 TXE
  • 发送完成 (Transmission complete) TC image.png

3 串口FIFO实现细节

  • .h image.png
  • .c image.png image.png image.png

3.1 发送内容先放入缓冲区

image.png

3.2 接收内容先放入缓冲区

image.png

3.3 串口中断中启动寄存器发送

image.png image.png image.png