STM32 μC/OS系统进睡眠模式的方法
来源:互联网 发布:mac版pdf如何修改文字 编辑:程序博客网 时间:2024/05/17 09:43
本文版权:成都至诚恒远物联网技术有限公司
网址: www.heryit.cn
联系电话: 028-87657875
13060063607
前段时间做基于μC/OS系统的开发,遇到一个问题,在运行任务的时候需要使CPU进入睡眠状态几秒钟,但直接调用__WFI();时没有效果,后来查找资料发现需要在空闲任务中调用。
下面是我让cpu进入睡眠状态的例子:
void App_TaskIdleHook (void)
{//检查标志确定是否需要睡眠
if(Flag_Power_Off != 0)
{//关闭systick避免systick中断唤醒CPU
SYSTICK_Cmd(DISABLE);
Flag_Power_Off = 0;
printf("sleep\r\n");
CLKPWR_Sleep();
printf("wake\r\n");
//恢复所有挂起的任务
OSTaskResume(10);
OSTaskResume(11);
OSTaskResume(12);
OSTaskResume(13);//使能systick恢复任务调度
SYSTICK_Cmd(ENABLE);
}
}
打开μC/OS的OS_APP_HOOKS_EN,在需要睡眠的地方加上下面的代码就可以进入睡眠状态了:
//设置定时器,定时进入中断唤醒CPU
//之前需要关闭除定时器以外的全部中断
//设置标志,需要进入睡眠状态
Flag_Power_Off = 0x01;
//挂起所有任务(保证CPU立即运行到空闲任务中)
OSTaskSuspend(10);
OSTaskSuspend(11);
OSTaskSuspend(12);
OSTaskSuspend(13);
注:在进入睡眠状态之前要用定时器设定唤醒时间并关闭除此定时器外的所有中断,我在进入空闲任务之前关掉了除systick外的中断,否则不能调度任务进入空闲任务,然后在空闲任务中关闭systick,睡眠完成之后再打开systick中断。
- STM32 μC/OS系统进睡眠模式的方法
- STM32--程序睡眠唤醒下载的方法
- Windows7系统的几种睡眠模式及设置方法
- stm32的μC/OS-II(μcosii)系统任务挂起、恢复、创建、删除
- 设置Win7系统睡眠模式
- 设置Win7系统睡眠模式
- STM32睡眠模式低功耗(停止模式)
- STM32睡眠模式低功耗(停止模式)
- 一种基于μC/OS-III及STM32的多功能控制器
- μC/OS-II嵌入式系统的学习与研究
- μC/OS-Ⅲ系统的中断管理
- μC/OS-Ⅲ系统的资源管理-临界区共享
- Mac OS 如何禁止睡眠,以免下载的时候断网而无法下载,输入命令禁止其进入睡眠模式
- VC 判断系统是否进入睡眠模式
- VC 判断系统是否进入睡眠模式
- STM32 睡眠电流
- WINCE6.0下开始菜单的“挂起(suspend)”是否可见及阻止系统进入睡眠模式
- WINCE6.0下开始菜单的“挂起(suspend)”是否可见及阻止系统进入睡眠模式
- 鸟哥的Linux私房菜(服务器)- 主机基本安全之一:限制 Linux 对外连线的端口
- JTable隐藏指定列
- Hash表
- android调用c/c++基本步骤
- SIP协议详解(中文翻译)
- STM32 μC/OS系统进睡眠模式的方法
- 鸟哥的Linux私房菜(服务器)- 主机基本安全之二: Linux线上自动升級
- 服务器监控之zabbix-agent安装篇
- Loading data for Android 5.0
- 1099 Build A Binary Search Tree
- AngularJS 基础点
- python 字典知识累积
- C/C++数据类型总结
- 探索大型网站技术架构(三)