在原代码的基础上 开启休眠
HAL_SLEEP=TRUE
开启前的adc采集数据:
开启后的adc采集数据
请问这个怎么解决呢?
在原代码的基础上 开启休眠
HAL_SLEEP=TRUE
开启前的adc采集数据:
开启后的adc采集数据
请问这个怎么解决呢?
产品蓝牙功能需要一直开启。
看了帖子,貌似只能 设置 HAL_SLEEP = TRUE 来让系统自动休眠。 不能手动进行休眠控制。
请问还有什么细节可以优化功耗吗? 功耗最低能做到多少呢?
ADC+BLE的测量可以通过TMOS任务完成,需要在每次采集之前重新选择一下通道。
开启休眠控制可以通过开始HAL_SLEEP完成,同时可以使能DCDC。蓝牙的功耗需要进一步降低可以对连接间隔和广播间隔进行处理,将这两个参数拉大一些,功耗会相应的变小。
这里提供间隔的讲解,可以参考一下:
BLE广播间隔和连接间隔(CH573) - SweetTea_lllpc - 博客园 (cnblogs.com)
每次ADC采集都重新选择adc通道, adc读数正常了。
开启 HAL_SLEEP后。 我还有一个 串口接收中断 无法触发。 这个怎么办呢
开启睡眠后的唤醒方式只有两种,RTC唤醒和GPIO中断唤醒,因此需要先将串口切换为GPIO进行唤醒再接收数据。
这里提供一个博客参考:
CH579 CH573 CH582 串口切换GPIO睡眠唤醒操作 - debugdabiaoge - 博客园 (cnblogs.com)
我没有主动进入休眠。 只开启了 HAL_SLEEP = TRUE
我的程序里面有一个串口接收中断 用来通讯的。 调试正常。
在开启 HAL_SLEEP = TRUE 后, 接收中断就无法接收到数据了。
我应该怎么处理?
没有主动进休眠,开启HAL_SLEEP = TRUE 也是进休眠的,休眠后只有两种唤醒方式,参考上面的回答并按照博客里的操作即可。
串口通过三极管接在GPIO上就解决了
唤醒就解决了