582M 开启休眠后adc数据异常

在原代码的基础上 开启休眠  

HAL_SLEEP=TRUE

image.png


开启前的adc采集数据:

image.png


开启后的adc采集数据


image.png


请问这个怎么解决呢?

产品蓝牙功能需要一直开启。

看了帖子,貌似只能 设置 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上就解决了

唤醒就解决了


只有登录才能回复,可以选择微信账号登录