所写都是已知,未知并未包含,也并未去试
1.串口有两种接收方式:定长与变长。每一种又分三类:普通,中断,DMA方式。
定长:HAL_UART_Receive() , callback函数:void HAL_UART_RxCpltCallback
不定长:HAL_UARTEx_ReceiveToIdl, callback函数:void HAL_UARTEx_RxEventCallback
注意:对于HAL_UARTEx_RxEventCallback函数,中断模式下是接收完成调用。DMA模式下接收数据过半和完成都会调用此函数。
__HAL_DMA_DISABLE_IT(&hdma_usart2_rx,DMA_IT_HT); // 关闭过半传输就调用callback函数。要额外注意的是,DMA接收完毕
调用callback函数的时候,要重新开启DMA和调用关闭过半传输就调用callback函数。