STM32单片机的低功耗模式待机唤醒设计.doc

上传人:白大夫 文档编号:3273692 上传时间:2019-08-07 格式:DOC 页数:4 大小:21.50KB
返回 下载 相关 举报
STM32单片机的低功耗模式待机唤醒设计.doc_第1页
第1页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《STM32单片机的低功耗模式待机唤醒设计.doc》由会员分享,可在线阅读,更多相关《STM32单片机的低功耗模式待机唤醒设计.doc(4页珍藏版)》请在三一文库上搜索。

1、STM32单片机的低功耗模式待机唤醒设计一 待机模式简介在STM32的低功耗模式中,待机模式可以实现系统的最低功耗,在这种模式下,只需要2uA左右的电流。三 待机唤醒程序分析实验现象:将程序下载到开发板上后,LED灯会不断地亮灭,当按下KEY2键超过3s时,LED灯灭,标志着单片机进入待机模式,再按下KEY1键,这时唤醒单片机,LED又开始不断地亮灭亮灭。程序中用到的一些宏定义#definemacEXTI_GPIO_CLK(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO)#definemacEXTI_GPIO_PORTGPIOC#definemacEXTI_G

2、PIO_PINGPIO_Pin_13#definemacEXTI_SOURCE_PORTGPIO_PortSourceGPIOC#definemacEXTI_SOURCE_PINGPIO_PinSource13#definemacEXTI_LINEEXTI_Line13#definemacEXTI_IRQEXTI15_10_IRQn#definemacEXTI_INT_FUNCTIONEXTI15_10_IRQHandler主函数:intmain(void)/*configtheled*/LED_GPIO_Config();/*extilineconfig*/EXTI_Pxy_Config()

3、;/初始化中断函数USARTx_Config();if(PWR_GetFlagStatus(PWR_FLAG_WU)=SET)printf(“rn使能电源管理时钟单元前的检测,待机唤醒复位rn”);elseprintf(“rn使能电源管理时钟单元前的检测,上电复位rn”);RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);if(PWR_GetFlagStatus(PWR_FLAG_WU)=SET)printf(“rn使能后检测,待机唤醒复位rn”);elseprintf(“rn使能后检测,上电复位rn”);while(1)LED1(ON);De

4、lay(0xFFFFF);LED1(OFF);LED2(ON);Delay(0xFFFFF);LED2(OFF);LED3(ON);Delay(0xFFFFF);LED3(OFF);分析:在主函数中,除了用到一些必要的初始化之外,就是while循环,在while循环中点亮LED灯,唯一不太熟悉的是几个printf语句,这里暂时不管,先看EXTI_Pxy_Config()函数。EXTI_Pxy_Config()函数voidEXTI_Pxy_Config(void)GPIO_InitTypeDefGPIO_InitStructure;EXTI_InitTypeDefEXTI_InitStructu

5、re;/*configtheextilineclockandAFIOclock*/RCC_APB2PeriphClockCmd(macEXTI_GPIO_CLK,ENABLE);/开启GPIO时钟和AFIO时钟/*configtheNVIC*/NVIC_Configuration();/*EXTIlinegpioconfig*/GPIO_InitStructure.GPIO_Pin=macEXTI_GPIO_PIN;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;/配置为上拉输入GPIO_Init(macEXTI_GPIO_PORT,/*EXTIlinem

6、odeconfig*/GPIO_EXTILineConfig(macEXTI_SOURCE_PORT,macEXTI_SOURCE_PIN);EXTI_InitStructure.EXTI_Line=macEXTI_LINE;EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Rising;/设置为上升沿触发中断!,也就是当单片机检测到按键的上升沿时进入中断程序EXTI_InitStructure.EXTI_LineCmd=ENABLE;EXTI_Init(分

7、析:在EXTI_Pxy_Config()函数中,先进行了KEY2按键的初始化,注意KEY2按键并不是WKUP按键,一定要注意。然后将KEY2按键的IO口配置为EXTI中断模式,上升沿触发,也就是说当KEY2按键被按下时就会触发中断。然后我们再分析当按键KEY2被按下时,执行的相应中断函数。macEXTI_INT_FUNCTION()函数/IO口线中断,中断口为PC13voidmacEXTI_INT_FUNCTION(void)if(EXTI_GetITStatus(macEXTI_LINE)!=RESET)/确保是否产生了EXTILine中断printf(“rn进入EXTILine中断rn”);/K2键长按进入待机模式if(PWR_Check_Standby()/PWR_Check_Standby()函数是用来判断按键时长的,如果按键时间长超过3S就返回1,否则返回0/使能WKUP引脚的唤醒功能PWR_WakeUpPinCmd(ENABLE);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1