用内置高速RC震荡器主频8M,使用的ADC通道1,注释掉这部分代码待机电流8.7uA左右,启用后电流366uA左右,有哪些模块还在耗电?
ADC初始化:
DMA发送初始化:
用内置高速RC震荡器主频8M,使用的ADC通道1,注释掉这部分代码待机电流8.7uA左右,启用后电流366uA左右,有哪些模块还在耗电?
ADC初始化:
DMA发送初始化:
PA1在测量完后进行了下拉输入设置
顶上去,功耗测试都是基于官方店铺买的评估板,断开了供电显示的led以及ldo
您好,在进行低功耗测试时,所有未用的IO口需要配置成下拉输入,要开启PWR时钟,将内部调压器调成低功耗模式,在CH32V003 EVT中有相关例程,可以参考下,如下图。CH32V003 EVT下载链接如下:
哪有这么低功耗的,当然得保持原先IO状态啊。否则低功耗意义何在?
我整理重新描述一下
待机以及外部中断的配置:
DMA_Tx_Init:
ADC_Function_Init:
下面是差异的描述内容,功耗测试都是基于官方店铺买的评估板,断开了供电显示的led以及ldo
程序测量电池电量后进行待机,下面这部分程序执行后待机电流360多uA。
2.程序测量电池电量后进行待机,下面这部分程序执行后待机电流9uA左右。
我的疑问是多出来的这部分电流是什么没有关闭造成的,我只是用了ADC测量、DMA写入测量数据,还请不要贴个例程糊弄过去。
待机电流360多uA的图不见了,这里补上
您好,多出来这部分电流是因为你ADC外设时钟没关。针对003系列,要获取更低功耗,在进入待机模式之前要关闭外设时钟。
待机前我已经做了这个操作RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, DISABLE);,请问怎样才能关闭ADC外设时钟,以及你说的要关闭的什么外设时钟?
您好,你可以按照下列解决方法试一下,如下图。在进入待机模式之前,在关闭ADC外设时钟之前调用RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1,ENABLE)函数复位一下再关闭外设时钟或者直接调用调用该函数都行。或者直接调用 ADC_Cmd(ADC1, DISABLE);函数关闭ADC再进入待机模式。我这边复现你的现象之后按照这种方式测试是可行的,若你那边还有问题,可将你的程序发到我的邮箱我这边具体看一下(lzs@wch.cn)
有效,待机电流下来了 在关闭ADC外设时钟之前调用RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1,ENABLE)函数复位一下再关闭外设时钟
可能是库没做动作,有些有bug,比如usart的clear flag
老哥 请问 你这个是什么软件,可以直接电脑上显示电流?
@章恒 有这个硬件搭配上位机, https://wiki.luatos.com/iotpower/cc/index.html