欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

STM32 hal库DMA中断实验

程序员文章站 2022-06-03 20:42:39
...
//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;
}
相关标签: stm32 STM32cubemx