stm32f103的dma中断配置代码
时间: 2023-04-03 18:02:55 浏览: 81
以下是 stm32f103 的 DMA 中断配置代码:
首先,需要开启 DMA 时钟:
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
然后,配置 DMA 通道:
DMA_InitTypeDef DMA_InitStructure;
DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&(USART1->DR);
DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)USART1_Rx_Buffer;
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
DMA_InitStructure.DMA_BufferSize = USART1_RX_BUFFER_SIZE;
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
DMA_InitStructure.DMA_Priority = DMA_Priority_High;
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
DMA_Init(DMA1_Channel5, &DMA_InitStructure);
其中,USART1_Rx_Buffer 是接收缓冲区,USART1_RX_BUFFER_SIZE 是接收缓冲区大小,DMA1_Channel5 是 DMA 通道。
最后,开启 DMA 中断:
DMA_ITConfig(DMA1_Channel5, DMA_IT_TC, ENABLE);
这样就完成了 stm32f103 的 DMA 中断配置代码。