//DMA内存传输到串口完成中断实验,
//1----自己编写回调函数并注册到dma句柄即可
usart.h--------extern DMA_HandleTypeDef hdma_usart1_tx;
main.c----------
int i=0;
void USART1_DMA_TX_CpltCallback( struct __DMA_HandleTypeDef * hdma);
int main(void)
{
HAL_UART_Transmit_DMA(&huart1,txbuf,20);//开启DMA传输
//注册DMA发送完成中断函数,此句要在DMA传输调用之后
hdma_usart1_tx.XferCpltCallback=USART1_DMA_TX_CpltCallback;
}
/* USER CODE BEGIN 4 */
void USART1_DMA_TX_CpltCallback( struct __DMA_HandleTypeDef * hdma)
{
i=1;
}
/* USER CODE END 4 */
//2-----------系统自带DMA发送完成回调函数
//查看HAL_UART_Transmit_DMA--UART_DMATransmitCplt--HAL_UART_TxCpltCallback
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
{
i=2;
}
————————————————
版权声明:本文为CSDN博主「sea1216」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sea1216/java/article/details/104366387