GD32F4 LVD(低电压监测)功能使用

1、关于LVD功能的描述

LVD的功能是检测VDD/VDDA供电电压是否低于低电压检测阈值,该阈值由电源控制寄存器
(PMU_CTL)中的LVDT[2:0]位进行配置。LVD通过LVDEN置位使能,位于电源状态寄存器
(PMU_CS)中的LVDF位表示低电压事件是否出现,该事件连接至EXTI的第16线,用户可以
通过配置EXTI的第16线产生相应的中断。

2、相关寄存器

主要关注PMU_CTL寄存器中的·LVDT和LVDEN字段
在这里插入图片描述

3、LVD中断

在这里插入图片描述

4、LVD阈值波形图

在这里插入图片描述

LVD阈值波形图显示了VDD / VDDA供电电压和LVD输出信号的关系。(LVD中断信号依赖于EXTI第16线的上升或下降沿配置)。迟滞电压Vhyst值为100mV。
这里要特别说明下:电压上升时,配置的是下降沿,电压下降时,配置的是上升沿

5、相关库函数

void pmu_lvd_select(uint32_t lvdt_n); //阈值配置,同时使能lvd功能
void pmu_lvd_disable(void); //失能lvd功能

6、核心代码实现

void lvd_init(void) {
    pmu_lvd_select(PMU_LVDT_5);

    nvic_irq_enable(LVD_IRQn, 13U, 0U);

    exti_init(EXTI_16, EXTI_INTERRUPT, EXTI_TRIG_RISING);  
    exti_interrupt_flag_clear(EXTI_16);
    exti_interrupt_enable(EXTI_16);
}

void LVD_IRQHandler(void) {
    if (exti_interrupt_flag_get(EXTI_16) == SET) {
        exti_interrupt_flag_clear(EXTI_16);
        dbg_info("%s", "low voltage\r\n");
        /* 此处加入应用代码 */
    }
}

7、测试

使用可调稳压电源,给mcu供电,将电压调至设定的阈值,即可产生LVD中断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

freemote

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值