STM32温度传感器断电
STM32 Temperature sensor power off
我正在使用内部 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,它似乎不会降低传感器的功率
我觉得你的 ADC1->CR &= 0x00000000;
行不对,这取决于你使用的控制器。
通常需要设置一个禁用ADC的位,而不是全写0。请尝试 ADC1->CR = (0x01 << 1);
。如果您有 ST Micro 为您的处理器编写的定义 ADC1->CR = ADC_CR_ADDIS;
应该是相同的但更具可读性。禁用 ADC 后,您将能够关闭 ADC->CCR
的 TSEN
位。
我正在使用内部 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,它似乎不会降低传感器的功率
我觉得你的 ADC1->CR &= 0x00000000;
行不对,这取决于你使用的控制器。
通常需要设置一个禁用ADC的位,而不是全写0。请尝试 ADC1->CR = (0x01 << 1);
。如果您有 ST Micro 为您的处理器编写的定义 ADC1->CR = ADC_CR_ADDIS;
应该是相同的但更具可读性。禁用 ADC 后,您将能够关闭 ADC->CCR
的 TSEN
位。