1》按照以下进行配置Z_STACK怎样进入PM2模式步骤
1. 首先需要在编译选项中加入POWER_SAVING,使能低功耗模式;其他没有用到的可以去掉,比如串口,LCD等功能。(此类似于宏定义)
2. 修改f8wConfig.cfg文件:
-DRFD_RCVC_ALWAYS_ON=FALSE
-DPOLL_RATE=0
-DQUEUED_POLL_RATE=0
-DRESPONSE_POLL_RATE=0
-DREJOIN_POLL_RATE=440(此非常重要,如果写成0则会造成协调器断电后终端无法加入网络)
3. void osal_pwrmgr_init( void )函数中,
修改pwrmgr_attribute.pwrmgr_device = PWRMGR_BATTERY; // Default to no power conservation.
pwrmgr_attribute.pwrmgr_task_state = 0; // Cleared. All set to conserve
4.按键设置为中断方式(这个为使用按键库中断唤醒,我已近写成寄存器版本的,不用也行)
HalKeyConfig(HAL_KEY_INTERRUPT_ENABLE, OnBoard_KeyCallback);//中断方式
5. 只在必要的地方启用定时函数,系统进入PM2模式,休眠电流为1.1UA,如果定时函数全部不开启,则会进入PM3模式,休眠电流更低0.3UA
6. 在终端中的SampleApp_ProcessEvent( )函数中,启用定时传输数据。
以上的456项是说只要有中断或者任务执行就可以唤醒,任务执行完后又进行了睡眠。关闭端口按照软件标注的就可以实现,在Z_Main里面。
2》关闭端口(即把没有用到的端口关闭,因为TI的协议栈例程是适用于他自己的开发板,把端口是打开的)
1. osal_int_enable( 0 );//INTS_ALL 更改1 关闭中断
2. InitBoard( OB_COLD );//OB_READY 更改2 关闭板载初始化
3. // Display information about this device 更改3 显示设备的信息注释
// zmain_dev_info();
4. #ifdef 0 //更改4 LCD屏上显示设备信息不使能
zmain_lcd_init();
3》实现低功耗的最小例程在资源里可以下载到(实现低功耗和终端数据单播发送给协调器)