调用LowPower_Sleep()函数时,选择了 (RB_PWR_RAM2K|RB_PWR_RAM14K|RB_PWR_EXTEND) ,并且唤醒后重新调用了
SystemInit()函数恢复时钟。
经过测试发现除了RF无法发送外,键盘扫描和鼠标扫描任务也不运行了。(不知道是不是死机)。
我想请教下:
(1)唤醒后需要重新初始化所用的外设吗?需要怎样恢复运行?
(2)系统进入Sleep模式后,TMOS还会继续运行任务吗?
调用LowPower_Sleep()函数时,选择了 (RB_PWR_RAM2K|RB_PWR_RAM14K|RB_PWR_EXTEND) ,并且唤醒后重新调用了
SystemInit()函数恢复时钟。
经过测试发现除了RF无法发送外,键盘扫描和鼠标扫描任务也不运行了。(不知道是不是死机)。
我想请教下:
(1)唤醒后需要重新初始化所用的外设吗?需要怎样恢复运行?
(2)系统进入Sleep模式后,TMOS还会继续运行任务吗?
这是官方提供的Sleep模式函数。
您好,右键左边栏的工程名,在最后一项工程属性(Properties)中增加预编译宏,HAL_SLEEP,置1即可启用休眠,由协议栈管理休眠,在没有TMOS时间执行的期间会自动休眠,不能手动调用LowPower_Sleep,手动调用是协议栈无法预期的休眠,不好管理。
@TECH_JW,您好,使用了HAL_SLEEP宏后,发现程序不运行了。可以请您解答一下吗,万分感激!
图片上是主函数和全局宏配置:
您好,仅用EVT中的RF_PHY_HOP例程,添加HAL_SLEEP宏,复位之后有如下打印吗。检查一下CLK_OSC32K宏是否为0,表示使用外部32K晶振;可以将CLK_OSC32K宏改成1来测试,表示使用内部32K。
@TECH_JW,您好,使用官方的RF_PHY_HOP例程,全局定义了宏HAL_SLEEP,并且确保了CLK_OSC32K宏为1,但是程序在串口终端打印了"RAM Config error..."。