打印

STM32如何进入待机模式?

[复制链接]
7725|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hawk05|  楼主 | 2009-2-26 17:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
参考手册上说,要执行 WFI 或 WFE指令,才能进入待机模式?

WFI 和 WFE 是 等待中断 等待事件的意思,但是在程序里如何执行那?

我在程序里直接写,WFI() ;      但是编译报错呀!
沙发
香水城| | 2009-2-26 18:47 | 只看该作者

这是2条指令,你要通过适当的方式在C中嵌入汇编实现

WFI()不是一个已经定义的C函数。

使用特权

评论回复
板凳
hawk05|  楼主 | 2009-2-26 20:52 | 只看该作者

ST的待机模式应用举例,就是直接写的呀?

ST 的文档STM32_Technical_Slide_PDF上,就是直接用的呀?


待机模式应用举例
进入停止模式的代码:
void PWR_EnterSTANDBYMode(void)
{
PWR->CR |= CR_CWUF_Set; // 清除Wake-up 标志
PWR->CR |= CR_PDDS_Set; // 选择进入STANDBY 模式
// 置位SLEEPDEEP位
*(vu32 *) SCB_SysCtrl |= SysCtrl_SLEEPDEEP_Set;
__WFI(); // 等待中断请求
}
用户只需在程序中调用该函数即可。同时还有设定唤醒源。

使用特权

评论回复
地板
hawk05|  楼主 | 2009-2-27 10:00 | 只看该作者

OK

用__WFI()就OK了,原来ST的库函数就是这样定义的!
我用的RVMDK!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

28

帖子

0

粉丝