STM32待机模式测试
本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.
参考链接:http://www.docin.com/p-114352411.html
环境:
主机:XP
开发环境:MDK4.10
单片机:STM32F103C8
功能:
开启RTC闹钟,然后进入待机模式,用闹钟唤醒后退出.
说明:
1.RTC闹钟唤醒事件发生时,同时进入闹钟中断,必须在初始化时与外部中断线17关联
2.如果仅想退出待机模式,RTC闹钟事件已经足够,不必与外部中断线17关联
3.退出待机模式后,接下来的流程类似于按下复位按键,程序会从头开始执行
源代码:
初始化时钟,配置时钟为内部时钟LSI,配置RTC闹钟唤醒以及外部中断线17
void RTC_Configuration(void){ //定义中断结构体 NVIC_InitTypeDef NVIC_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; //中断时钟使能 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //中断优先级配置 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //设置RTC闹钟中断 NVIC_InitStructure.NVIC_IRQChannel = RTCAlarm_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); //闹钟中断接到第17线外部中断 EXTI_ClearITPendingBit(EXTI_Line17); EXTI_InitStructure.EXTI_Line = EXTI_Line17; EXTI