stm32 HAL PVD 电源监测
2017-12-25 13:33
162 查看
pvd.c
void PVD_Init(void)
{
__HAL_RCC_PWR_CLK_ENABLE();
PWR_PVDTypeDef PWR_PVDStruct;
PWR_PVDStruct.PVDLevel = PWR_PVDLEVEL_6; // 2.8V
PWR_PVDStruct.Mode = PWR_PVD_MODE_IT_RISING; //降至阈值电压时触发
//谁能告诉我为什么是RISING不是FALLING
HAL_PWR_ConfigPVD(&PWR_PVDStruct);
HAL_PWR_EnablePVD();
}
/* 重写回调函数 */
void HAL_PWR_PVDCallback(void)
{
HAL_GPIO_WritePin(Debug_LED_PORT, Debug_LED_PIN, GPIO_PIN_SET); //debug_led亮
}
用中断
stm32f1xx_it.c
void PVD_IRQHandler(void)
{
HAL_PWR_PVD_IRQHandler();
}
我用来在掉电时存储数据进flash,硬件上要保证掉电时间(从触发中断到电压降至2.0V)足够长,来进行你需要的操作
void PVD_Init(void)
{
__HAL_RCC_PWR_CLK_ENABLE();
PWR_PVDTypeDef PWR_PVDStruct;
PWR_PVDStruct.PVDLevel = PWR_PVDLEVEL_6; // 2.8V
PWR_PVDStruct.Mode = PWR_PVD_MODE_IT_RISING; //降至阈值电压时触发
//谁能告诉我为什么是RISING不是FALLING
HAL_PWR_ConfigPVD(&PWR_PVDStruct);
HAL_PWR_EnablePVD();
}
/* 重写回调函数 */
void HAL_PWR_PVDCallback(void)
{
HAL_GPIO_WritePin(Debug_LED_PORT, Debug_LED_PIN, GPIO_PIN_SET); //debug_led亮
}
用中断
stm32f1xx_it.c
void PVD_IRQHandler(void)
{
HAL_PWR_PVD_IRQHandler();
}
我用来在掉电时存储数据进flash,硬件上要保证掉电时间(从触发中断到电压降至2.0V)足够长,来进行你需要的操作
相关文章推荐
- stm32的可编程电压检测PVD
- STM32L0xx_Hal_Driver库的使用--EXTI
- STM32 HAL库中GPIO相关函数解析
- PCB制图-STM32的PVD、POR、PDR都是什么鬼
- STM32 HAL固件库编程的文件构架
- STM32 可编程电压监测器(PVD)实现数据掉电保存
- STM32 HAL drivers < STM32F7 >
- 关于STM32的HAL库中超时函数中的tick溢出后产生的问题的思考及求证
- STM32 可编程电压监测器(PVD)
- stm32 PVD 可编程电压监测器
- STM32 HAL库头文件包含关系
- STM32关于PVD低电压能检测的知识
- STM32之HAL库详解 及 手动移植
- stm32 PVD 可编程电压监测器
- STM32L0xx_HAL_Driver库的使用——UART
- STM32 CUBE HAL库 HAL_GPIO_EXTI_IRQHandler
- STM32 HAL I2C库读指定寄存器的数据
- STM32-HAL
- STM32采用HAL库HAL_UART_Receive_IT()多次开启的问题
- STM32L1XX使用HAL_UART_Transmit_DMA发送串口数据