
stm32 的 DMA 中断问题 悬赏分:0 - 离问题结束还有 14 天 23 小时 在使用 stm32的德DMA中断的时候 DMA1_Channel1->CCR = 0x000025Ae;打开了DMA的所有中断。 在程序运行的时候GIF1 TCIF1 HTIF1 的标记位都已经置1了。但是程序就是不进入中断。查看中断控制器的内容,发现DMA的中断被挂起了(pending)。这是怎么回事? 我的中断程序是 /******************************************************************************/ /* DMA interrupt service function */ /* */ /******************************************************************************/ void DMAChannel1_IRQHandler (void) { int r = 5; } 初始化函数 void adc_Init (void) { // GPIOA->CRL &= ~0x0000000F; /* set PIN1 analog input (see stm32_Init.c) */ RCC->AHBENR |= (1CPAR = (unsigned long)&(ADC1->DR); /* set chn1 peripheral address */ DMA1_Channel1->CNDTR = 3; /* transmit 3 words */ // DMA1_Channel1->CCR = 0x00002520; /* configure DMA channel 1 */ DMA1_Channel1->CCR = 0x000025Ae; /* configure DMA channel 1 */ /* circular mode, memory increment mode */ /* memory & peripheral size 16bit */ /* channel priotity high */ DMA1_Channel1->CCR |= (1 APB2ENR |= (1SQR3 = (2 |
RE:stm32 的DMA中断问题
void RTC_It(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQChannel;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =6;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
RE:stm32 的DMA中断问题
回复:stm32 的DMA中断问题
参考ST里面的demo,学习一下DMA
把中断函数DMAChannel1_IRQHandler() 换成DMA1_Channel1_IRQHandler ()试试,
startup_stm32f10x_xl.s里是这么写的
EXPORT EXTI1_IRQHandler [WEAK]
EXPORT EXTI2_IRQHandler [WEAK]
EXPORT EXTI3_IRQHandler [WEAK]
EXPORT EXTI4_IRQHandler [WEAK]
EXPORT DMA1_Channel1_IRQHandler [WEAK]
EXPORT DMA1_Channel2_IRQHandler [WEAK]
EXPORT DMA1_Channel3_IRQHandler [WEAK]
EXPORT DMA1_Channel4_IRQHandler [WEAK]
EXPORT DMA1_Channel5_IRQHandler [WEAK]
EXPORT DMA1_Channel6_IRQHandler [WEAK]
EXPORT DMA1_Channel7_IRQHandler [WEAK]