芯片解密PY32F0单片机LPTIM中断唤醒
| ================================================== 芯片解密 样例使用说明 ================================================== 芯片解密功能描述: 此样例演示了外部触发LPTIM,由LPTIM中断唤醒stop模式,每次唤醒后再次进入stop模式,每6s唤醒一次,并在中断中翻转LED灯。 stop模式下,测得功耗8.96uA ================================================== 测试环境: 测试用板:PY32F030_STK MDK版本: 5.28 ================================================== 使用步骤: 1. 编译下载程序到MCU,并运行; 2. 按下按键进入stop模式; 3. 6s后唤醒stop模式并循环进入stop模式再唤醒; 4. 中断中LED保持频率闪烁; ================================================== 注意事项: 每次唤醒后再次进入Stop模式前,必须增加延时,用于LSI和APB时钟同步 ================================================== #include "main.h" #include "tim.h" #include "gpio.h" #include "exti.h" #include "lptim.h" void APP_SystemClockConfig(void); int main(void) { /* 初始化所有外设,Flash接口,SysTick */ HAL_Init(); /* 系统时钟配置 */ APP_SystemClockConfig(); /* 初始化GPIO */ APP_GpioConfig(); /* 初始化Exti */ APP_ConfigureExti(); /* 初始化Time */ APP_Tim1Config(); /* 时钟设置 */ APP_RCCOscConfig(); /* LPTIM初始化 */ APP_LPTIMInit(); /* 使能PWR */ __HAL_RCC_PWR_CLK_ENABLE(); /* 关闭Systick中断 */ HAL_SuspendTick(); while (1) { if(KEY_down_up==Down_KEY)//检测到一次下降沿到来 { KEY_down_up=Up_KEY; /* 关闭Systick中断 */ HAL_SuspendTick(); /* 失能 LPTIM */ __HAL_LPTIM_DISABLE(&LPTIMConf); /* 使能LPTIM和中断,并开启单次计数模式 */ APP_LPTIMStart(6);//6秒后自动唤醒 /* 进入STOP模式,使用中断唤醒 */ HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); } } } |

芯片解密