STM32为什么进入了中断函数还要检查中断标志位啊?void DMA1_Channel6_IRQHandler(void){/* Test on DMA1 Channel6 Transfer Complete interrupt */if(DMA_GetITStatus(DMA1_IT_TC6)){/* Get Current Data Counter value after complete transfer */
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/05 18:44:59
![STM32为什么进入了中断函数还要检查中断标志位啊?void DMA1_Channel6_IRQHandler(void){/* Test on DMA1 Channel6 Transfer Complete interrupt */if(DMA_GetITStatus(DMA1_IT_TC6)){/* Get Current Data Counter value after complete transfer */](/uploads/image/z/6297324-60-4.jpg?t=STM32%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BF%9B%E5%85%A5%E4%BA%86%E4%B8%AD%E6%96%AD%E5%87%BD%E6%95%B0%E8%BF%98%E8%A6%81%E6%A3%80%E6%9F%A5%E4%B8%AD%E6%96%AD%E6%A0%87%E5%BF%97%E4%BD%8D%E5%95%8A%3Fvoid+DMA1_Channel6_IRQHandler%28void%29%7B%2F%2A+Test+on+DMA1+Channel6+Transfer+Complete+interrupt+%2A%2Fif%28DMA_GetITStatus%28DMA1_IT_TC6%29%29%7B%2F%2A+Get+Current+Data+Counter+value+after+complete+transfer+%2A%2F)
STM32为什么进入了中断函数还要检查中断标志位啊?void DMA1_Channel6_IRQHandler(void){/* Test on DMA1 Channel6 Transfer Complete interrupt */if(DMA_GetITStatus(DMA1_IT_TC6)){/* Get Current Data Counter value after complete transfer */
STM32为什么进入了中断函数还要检查中断标志位啊?
void DMA1_Channel6_IRQHandler(void)
{
/* Test on DMA1 Channel6 Transfer Complete interrupt */
if(DMA_GetITStatus(DMA1_IT_TC6))
{
/* Get Current Data Counter value after complete transfer */
CurrDataCounterEnd = DMA_GetCurrDataCounter(DMA1_Channel6);
/* Clear DMA1 Channel6 Half Transfer,Transfer Complete and Global interrupt pending bits */
DMA_ClearITPendingBit(DMA1_IT_GL6);
}
}
像这个中断函数,都已经进入中断了,为什么还要用IF判断下啊
STM32为什么进入了中断函数还要检查中断标志位啊?void DMA1_Channel6_IRQHandler(void){/* Test on DMA1 Channel6 Transfer Complete interrupt */if(DMA_GetITStatus(DMA1_IT_TC6)){/* Get Current Data Counter value after complete transfer */
多个中断源共用一个中断入口,因此需要区分究竟是怎么中断的.