当前文档版本为 v0.5.0,您可以访问当前页面的 开发中 版本以获取最近可能的更新。

gpio_lp_wakeup例程

1 功能概述

gpio_lp_wakeup是一个演示 EVB GPIO唤醒MCU功能的简单例程,实现按下KEY1(P1_5)时,MCU被唤醒,RGB蓝色指示被点亮,1秒之后RGB蓝色指示被熄灭,MCU再次进入休眠,如此循环。

注:KEY1对应P1_5;RGB蓝色指示灯对应P1_2

2 环境要求

  • Board: pan2628b1_evb

  • 将 J17 单刀双掷开关拔至PWM1侧,将P1_2与RGB蓝色指示灯控制引脚相连

  • 通过不断按下弹起KEY1键来唤醒MCU

3 编译和烧录

例程位置:pan2628_dk\01_SDK\example_basic\gpio\gpio_lp_wakeup

打开目录下keil下的gpio_lp_wakeup.uvprojx工程,编译整个代码工程。

注意烧写此工程代码后,若要再次烧写代码必须要按下RST KEY后2秒内进行烧写,否则MCU进入低功耗后,无法进行代码烧写

4 演示说明

根据环境要求一节的介绍,正确连接 EVB 开发板的跳线,编译、下载代码后:

  1. 不断按下弹起KEY1键

  2. 观察蓝色指示灯工作状态

5 开发说明

通过调用 gpio.c 的GPIO_Init()函数接口配置GPIO的工作模式; 通过调用 lp.c中的LP_ExIntSourceSelect()、WakeupGpioConfig()函数接口实低现GPIO的功耗唤醒功能。

 /** Config P1_2 to pushpull output Mode */
 GPIO_Init(GPIO_P12, GPIO_P12_MUX_IO, GPIO_MODE_OUTPUT_PP, GPIO_NOPULL);

 /** Config P16 to input mode,with pull up resistance */
 GPIO_Init(GPIO_P15, GPIO_P15_MUX_IO, GPIO_MODE_INPUT, GPIO_PULLUP);
 
 /** Config EXTERN_INT0/1 as wakeup interrupt */
 LP_ExIntSourceSelect(INT_SEL_WAKEUP);
 
 /** Config P15 as wakeup pin */
 LP_WakeupGpioConfig(GPIO_PORT1, GPIO_Pin_5, GPIO_LOW);
 LP_WakeupGpioEnable(GPIO_PORT1, GPIO_Pin_5, ENABLE);

6 RAM/Flash资源使用情况

Program Size: data=14.0 xdata=0 const=0 code=1200