你的需求:10个按键,低功耗可唤醒,触发按键发送数据,
实现方法:RTC中断唤醒低功耗,按键检测使用定时器中断扫描。
现有的问题:因为按键检测使用的定时器不停的中断,所以你的单片机10ms就唤醒一次,不会保持在低功耗模式。RTC 中断唤醒,适合芯片长时间处于低功耗模式,而你的按键随时都可能触发,所以也不合适。
可以调整的地方:10个按键通过或门连接到一个外部中断。去掉按键轮询定时器,改为外部中断轮询按键。
触发按键,外部中断首先唤醒单片机,外部中断处理函数里面轮询是哪个按键触发,再执行那个按键的任务。RTC 同时也能唤醒,执行定时要做的任务。按键任务和RTC任务执行完后,都让芯片进入低功耗。板子上蓝牙模块保持不动。