如题:
awu休眠,然后定时唤醒,两种写法
1、寄存器 注意时钟128KHz低速内部RC(LSI)
主函数:
AWU->APR = 0x3E; //64分频
AWU->TBR = 0x0F; //30秒唤醒
CLK->PCKENR2 |= (0x04); /* AWU与主时钟连接 */
AWU->CSR |= 0x10; //使能自动唤醒
CLK->ICKR |= 0x08; // 打开内部低速时钟源
while(0x10 != CLK->ICKR & 0x10); // 等待时钟源信号稳定
CLK->ICKR |= 0x08; // 打开内部低速时钟源
while(0x10 != CLK->ICKR & 0x10); // 等待时钟源信号稳定

中断清除标记
#pragma vector = 0X03
__interrupt void AWU_IRQHandler(void)
{
//WWDG->CR = 0x80;//复位stm8 这样写也可以,下面这写法也可以
AWU_GetFlagStatus();//清除标志
AWU_Status_Flag = 1; //自定义的全局变量 标记
}
主程序循环
halt();
while(1)
{
if(AWU_Status_Flag == 1) //全局变量

本文介绍了STM8微控制器中自动唤醒单元(AWU)的两种使用方法:一种是通过寄存器配置实现30秒定时唤醒;另一种是利用库函数进行初始化实现2秒定时唤醒。文章提供了详细的代码示例,并展示了如何在主程序中检测唤醒标志。
最低0.47元/天 解锁文章
6406

被折叠的 条评论
为什么被折叠?



