定时唤醒功能强大却不能唤醒stm32中断?
一采用stm32f103的低功耗产品,需要从停止模式定时唤醒,一般认为设置好闹钟中断就行,但stm32f103不行,设置了ALRIE,也出现了ALRF标志,就是进不了闹钟中断。查文档,发现stm32有个神奇的中断线17,它在内部连接到了RTC闹钟事件上,需要同时设置中断线17才能引起闹钟中断,继而唤醒stm32。
1、STM32中断函数EXTI0_IRQChannel表示的是外部中断线EXTI0对应的中断函数。以STM32F103VB系列为例,100pin,一般我们通常使用的IO对应外部中断线如下:PA0,PB0,PC0,PD0,PE0对应的是EXTI0中断线;以此类推到PA15,PB15,PC15,PD15,PE15对应EXTI5中断线。EXTI0对应的中断函数为EXTI0_IRQChannel;EXTI1对应的中断函数为EXTI1_IRQChannel;EXTI2对应的中断函数为EXTI2_IRQChannel;EXTI3对应的中断函数为EXTI3_IRQChannel;EXTI4对应的中断函数为EXTI4_IRQChannel;EXTI5>EXTI9对应的中断函数为EXTI9_5_IRQHandler;EXTI10>EXTI15对应的中断函数为EXTI15_10_IRQHandler;你要是使用哪种类型的中断就初始化哪类型的中断,然后在中断函数里写你想实现的东西,注意中断函数的操作不易过多。
2、stm32关于串口中断服务函数我尝试给你解释下,可能不够合理。stm32startupXXx.s是上电启动后执行的启动文件,上电后会初始化中断向量表当你开启中断且触发了对应中断会跳转到对应中断函数XXX_IRQHandler,但是它还有很多个情况(建议看下stm32编程参考手册对应USART中断部分)在这个中断函数中你需要对事件做判断其中USART_GetITStatus就是检查是否是指定的中断发生,然后做对应处理。