STM8S_AWU自动唤醒模式

想使用AWU模式 首先得知道它是通过内部低速时钟LSI产生的(也可以是HSI)可以自己设置

注意:使用的前提的得先让单片机进入低功耗模式 halt(); 直接上源码

void AWU_Init_Config(void)
{
  CLK_LSICmd(ENABLE);//使能内部低速时钟LSI
  AWU_Init(AWU_TIMEBASE_2S);
}

使能LSI时钟 让AWU两秒进入一次 中断

/*中断函数*/

uint8_t Flag = 0;

INTERRUPT_HANDLER(AWU_IRQHandler, 1)
{
  /* In order to detect unexpected events during development,
     it is recommended to set a breakpoint on the following instruction.
  */
  FlagStatus flag_status;
  flag_status = AWU_GetFlagStatus();
  if (flag_status == SET) // SET or RESET
  {
    Flag = 1;
  }
}

 flag_status = AWU_GetFlagStatus();

这句的意思是判断是否产生中断 读走AWU_CSR_AWUF标志位 读走自动清零 

设置一个标置位进循环 

  while (1)
  {
    if( Flag == 1)
    {
      Flag = 0;
      GPIO_WriteReverse(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS);
      Delay(0xFFFF);
      GPIO_WriteReverse(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS);
      Delay(0xFFFF);
      halt();
    }
  }

****** 注意:想进入中断必须先让单片机进入低功耗模式 否则内部计数器无法计数 halt();

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值