lp_sleep例程¶
1 功能概述¶
本例程主要演示 EVB gpio/uart 唤醒处于sleep状态MCU的简单例程,mcu进入sleep状态之后,通过串口工具向mcu发送一个字符或者按下KEY1即可唤醒mcu, mcu被唤醒后,点亮蓝色LED,1秒后熄灭蓝色LED,MCU再次进入sleep状态,以上过程循环。
注:KEY1对应P1_5;RGB蓝色指示灯对应P1_2
2 环境要求¶
Board: PAN2628b1_evb
将 J17 单刀双掷开关拔至PWM1侧,将P1_2与RGB蓝色指示灯控制引脚相连
将 J18(P3_0) 开关拔至RX侧,将P3_0与uart的RX引脚相连
将 J19(P3_1) 开关拔至TX侧,将P3_1与uart的TX引脚相连
KEY1 独占 P1_5,不需要拔开关
3 编译和烧录¶
例程位置:pan2628_dk\01_SDK\example_basic\lp\lp_sleep
打开目录下keil下的lp_sleep.uvprojx工程,编译整个代码工程。
注意:烧写此工程代码后,若要再次烧写代码必须要按下RST KEY后2秒内进行烧写,否则MCU进入低功耗后,无法进行代码烧写。
4 演示说明¶
根据环境要求一节的介绍,正确连接 EVB 开发板的跳线,编译、下载代码后:
在电脑上打开串口调试工具,串口参数:115200/8bit/1stop/无校验
按下RST复位KEY,复位MCU
通过串口工具向MCU发送字符“A”,观察蓝色led是否亮1秒
不断按下KEY1,观察蓝色led灯是否被KEY1事件点亮1秒
串口输出信息如下:
lp sleep test.
AAAA
5 开发说明¶
通过调用 lp.c中的LP_ExIntSourceSelect()、WakeupGpioConfig()
等函数接口来实现sleep低功耗功能,详细请查阅代码。
/** Config EXTERN_INT0/1 as wakeup interrupt */
LP_ExIntSourceSelect(INT_SEL_WAKEUP);
/** Config P16 as wakeup pin */
LP_WakeupGpioConfig(GPIO_PORT1, GPIO_Pin_6, GPIO_LOW);
LP_WakeupGpioEnable(GPIO_PORT1, GPIO_Pin_6, ENABLE);
6 RAM/Flash资源使用情况¶
Program Size: data=31.2 xdata=0 const=25 code=2483