• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32L151C8T6待机模式唤醒的问题

蓝蓝的天 2019-03-07 浏览量:2251
现在有个项目,用电池供电,需要低功耗。板子上有一个蓝牙模块。

准备用STM32L151C8T6,用低功耗待机模式。
待机模式打算用RTC闹钟唤醒。
可是还有个问题,板子上有10个按键,按下任何一个按键,都要
向另一块板子的蓝牙模块发送数据。
按键检测用定时器写的,定时器每10ms中断一次。
那问题就来了。我感觉RTC的闹钟中断的时间是以秒为单位的,
那样的话,就检测不到按键了。这可怎么办呀?谢谢!
1 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 首先要明白,在待机模式下,
    唤醒条件:RTC中断、WKUP引脚电平变化、复位和IWDG

    如果你执意要用待机模式下,建议你可以打WKUP电平变化的注意。
    在硬件上设计,任何一个按键的电平变化,都会让WKUP产生一个上升沿。这样就能唤醒MCU

    如果不改硬件,你只有使用稍微高点的低功耗模式:平时都处于低功耗下,使用按键的外部中断去唤醒MCU
    • 发布于 2019-03-07
    • 举报
    • 评论 1
    • 1
    • 0
蓝蓝的天 回复了 川楠:按你说的,不改硬件,可以用停机模式。 回复

其他答案 数量:8
  • 你的需求:10个按键,低功耗可唤醒,触发按键发送数据,

    实现方法:RTC中断唤醒低功耗,按键检测使用定时器中断扫描。

    现有的问题:因为按键检测使用的定时器不停的中断,所以你的单片机10ms就唤醒一次,不会保持在低功耗模式。RTC 中断唤醒,适合芯片长时间处于低功耗模式,而你的按键随时都可能触发,所以也不合适。

    可以调整的地方:10个按键通过或门连接到一个外部中断。去掉按键轮询定时器,改为外部中断轮询按键。

    触发按键,外部中断首先唤醒单片机,外部中断处理函数里面轮询是哪个按键触发,再执行那个按键的任务。RTC 同时也能唤醒,执行定时要做的任务。按键任务和RTC任务执行完后,都让芯片进入低功耗。板子上蓝牙模块保持不动。

    • 发布于2019-03-07
    • 举报
    • 评论 0
    • 2
    • 0

  • 使用stm32L151C8T6芯片,用rtc唤醒低功耗,三种模式详细介绍,并付代码。

    这三种低功耗楼主花了好长时间才做出来,分享给大家。实测stop模式下电流为1.3uAstandby模式下电流为1uA.
    • 发布于2019-03-07
    • 举报
    • 评论 1
    • 0
    • 0
蓝蓝的天 回复了 eb2ab4f2892a816d :代码呢? 回复

  • 10个按键通过10个二极管的正极相连,然后再接到wkup管脚上,这样任意键按下必然唤醒单片机,然后再立即处理按键判断
    • 发布于2019-03-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 使用stm32L151C8T6芯片,用rtc唤醒低功耗,三种模式详细介绍,并付代码。


    这三种低功耗楼主花了好长时间才做出来,分享给大家。实测stop模式下电流为1.3uAstandby模式下电流为1uA.
    • 发布于2019-03-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 为了保证低功耗,可以再加一个外部中断唤醒,将按键连接至一个或门,只要有一个按下,输出端就输出信号唤醒单片机,然后单片机开始检测按键
    • 发布于2019-03-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 这种可以增加一个IO中断唤醒的功能,有按键按下时也唤醒
    • 发布于2019-03-07
    • 举报
    • 评论 0
    • 0
    • 0

  • RTC是以秒为单位的,所以,只能 是按秒来唤醒的了,不过可以使用定时器的啊
    • 发布于2019-03-07
    • 举报
    • 评论 1
    • 0
    • 0
蓝蓝的天 回复了 厉害企鹅 :定时器中断是无法唤醒的吧 回复

  • 既然是用L1低功耗系列,那么用停止模式和睡眠模式就能做到低功耗要求了,可以直接配置HAL库进入和退出停止/睡眠模式,我们公司的项目就是如此。

    • 发布于2019-03-19
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32L151C8T6待机模式唤醒的问题