在数据手册中:串口的功能

X 表示支持,- 表示不支持。
485 流控支持
串口作为SPI主机
当硬件 SPI 不够用的时候,可使用串口作为 SPI 主机,缺点是速度比较慢、不完全兼容 SPI 的所有模式和时序,适合低速SPI设备,如EEPROM。
外设中断和DMA中断到底用哪个?
在数据传输中,如果外设能明确分辨数据边界,即能知道数据的开始和结束,就用外设的中断,否则用DMA中断。
串口有不定长数据结束判断的能力,而 SPI 没有。
STM32中,为什么串口+DMA使用的是串口的空闲中断,而SPI+DMA使用的是DMA中断
RXNE:接收缓冲非空,表示接收到了数据
TXE:发送缓冲空,表示可以发送下一个数据了
TC:所有数据发送完
F0:
清 RXNE 中断:
读取 RDR 寄存器,常用
向 USART_RQR 寄存器的 RXFRQ 位写 1
清 TC 中断:先读取状态寄存器 USART_SR,再向 USART_TDR 寄存器写入数据
清 TXE 中断:
向 USART_TDR 寄存器写入数据
向 USART_RQR 寄存器的 TXFRQ 位写 1
读取状态寄存器的方法
temp = USART1 -> ISR
USART_GetITStatus(USART1, USART_IT_RXNE)
USART_ClearITPendingBit 不能清 RXNE、TXE标志
串口使用DMA发送时,不需要管TXE中断标志,这些由DMA控制器自动清零。
当一次DMA就能传输完所有数据时,不用管TC,否则需要TC等待。