历史上的今天
今天是:2024年11月16日(星期六)
2019年11月16日 | STM8S使用AWU无法唤醒的问题的解决过程
2019-11-16 来源:eefocus
最近使用STM8S005做一个项目, 想达到进入Halt状态然后定时唤醒, 查看了一下文档, 发现可以用自动唤醒功能AWU来做. 于是有了如下代码:
AWU_APR = 0x3E; //64分频
AWU_TBR = 0x0F; //32秒唤醒
CLK_PCKENR2 |= (0x04); /* AWU与主时钟连接 */
AWU_CSR |= 0x10; //使能自动唤醒
CLK_ICKR |= 0x08; // 打开内部低速时钟源
while(0x10 != CLK_ICKR & 0x10); // 等待时钟源信号稳定
halt();
发现进入Halt状态了, 可等了30多秒后, 没有发现起来呀(我是用LED灯来指示的, LED只在初始化的时候设置, 没有看到LED灯亮, 那就表示没有起来), 百思不得其解, 疯狂google, 才发现自己犯了一个错误: 我以为AWU唤醒后, 会自动复位, 其实它不会复位, 而是进入了中断, 如果没有清除中断, 那么就一直在中断了... 见google来的类似问题:stm8的awu自动唤醒问题
真是经验主义害死人呀.
找到问题那就好办了, 在中断方法中添加看门狗来复位一下(当然, 你也可以根据你的需求来处理这种情况)
@far @interrupt void AWU_IRQHandler(void)
{
WWDG_CR=0xbf;
}
记得修改中断向量表里面的AWU方法名称为
AWU_IRQHandler
就好
PS: 在做AWU的时候还遇到了无法切换到LSI的问题(我一开始以为需要将时钟切换至LSI, AWU才能起作用, 后来发现不是, 无论怎么说, 无法切换到LSI也算是学习到一点东西)
史海拾趣
|
arm-xscale, arm-iwmmxt这两个有什么区别?? 我要为pxa270编译一个工具链,在网上看有人用arm-xscale ,有人用arm-iwmmxt,iwmmxt是什么?… 查看全部问答> |
|
工程编译目标文件project.out使用属性察看size的大小和实际文件大小问什么不一样? 在Tornado环境下,编译downloadable类型的工程,生成project.out文件,右键察看priority-size大小为:0.68MB左右,而到工程目录下找到project.out文件,其文件大小却为:8MB左右,将project.out下载到目标机,目标机资源占用情况也差 ...… 查看全部问答> |
|
高薪招聘招聘逆向调试人员! 工作地点:吉林省长春市 工作性质: 全职(可兼职) 薪 水: 不求学历,只看实力,薪水看你的能力另谈!(一旦录用,如工作尽职,三个月后可加薪) 岗位职责: 网络游戏安全问题,分析.(外挂、木马等 ...… 查看全部问答> |
|
如果我说造飞碟,你认为是天方夜谭那么我告诉你,你落后了。在网上有几千UFO研究者和制造者!以下是关于飞碟制造的资料和设计参考!!! 瑟尔效应反重力研究群: 永动机: 分别介绍我所有的资料: 1、纳粹德国飞碟制造: &n ...… 查看全部问答> |




