我正在使用内部ADC温度传感器,在无传感器处于停止模式的低功耗设备中,uController的功耗约为4 uA,但是当温度传感器开启时,功耗高达8-9 uA 问题是我无法关闭传感器/我只是通过从stmcube开始将其设置为关闭来测量关闭电流
我正在搜索可以关闭温度传感器的代码 到目前为止,我已经测试了这些:
1-
HAL_ADC_Init(&hadc);
hadc.Lock=HAL_UNLOCKED;
__HAL_UNLOCK(&hadc);
HAL_ADCEx_DisableVREFINTTempSensor();
2-
ADC1->CR&=0X00000000;
ADC->CCR&=~(1<<23);
我更喜欢使用HAL,它似乎并没有降低传感器的功率
答案 0 :(得分:0)
您的ADC1->CR &= 0x00000000;
行对我来说似乎不对,具体取决于您使用的控制器。
通常有一点需要禁用ADC,而不是全部写入0。尝试使用ADC1->CR = (0x01 << 1);
。如果您有ST Micro的处理器ADC1->CR = ADC_CR_ADDIS;
书面定义,则应相同但可读性更好。禁用ADC后,您将可以关闭TSEN
的{{1}}位。