hal库,串口DMA发送,如果发送频繁,DMA没有处理完,导致后发的冲击前面的数据。
所有使用DMA发送需要给DMA一定的时间。
在使用LL库时,可以在DMA中断中判断
/**
* @brief Get Channel 4 transfer complete flag.
* @rmtoll ISR TCIF4 LL_DMA_IsActiveFlag_TC4
* @param DMAx DMAx Instance
* @retval State of bit (1 or 0).
*/
__STATIC_INLINE uint32_t LL_DMA_IsActiveFlag_TC4(DMA_TypeDef *DMAx)
但是采用HAL库不知道如何判断,DMA是否发送完毕。
只能在主函数加个延时,但是这样会影响实时性,如果实时性要求不高的话可以这样做。