首页 > 解决方案 > STM32温度传感器断电

问题描述

我正在使用内部 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,它似乎不会切断传感器电源

标签: stm32temperatureadchal

解决方案


ADC1->CR &= 0x00000000;根据您使用的控制器,您的线路在我看来是错误的。

通常有一个位来禁用需要设置的 ADC,而不是写全 0。试试ADC1->CR = (0x01 << 1);吧。如果您有 ST Micro 为您的处理器编写的定义ADC1->CR = ADC_CR_ADDIS;应该相同但更具可读性。禁用 ADC 后,您将能够TSEN关闭ADC->CCR.


推荐阅读