关于CH32F203CBT6芯片pvd问题,想请教一下,设置成阈值电压为2.5v

关于pvd问题,想请教一下,设置成阈值电压为2.5v,给单片机供电低于2.5v,当使用PWR_GetFlagStatus(PWR_FLAG_PVDO) 去获取当前VDD和VDDA状态,使用if(PWR_GetFlagStatus(PWR_FLAG_PVDO) == SET)判断条件时无法进入到if语句里面,想请问一下需要配置什么才能正常获取到这个状态。

image.png

您好,按照你的要求,若需要if语句成立,即VDD要低于PLS域设定的阈值,若你阈值电压要求2.5V,根据对PLS域的设置,如下图1,可以配置成010,即下降沿2.55V,程序中调用PVD电压阈值设置函数PWR_PVDLevelConfig配置该阈值,如下图2。附件是根据你的需求写的一个参考例程,可以参考一下。后续若有问题,可通过邮箱(lzs@wch.cn)和我沟通

icon_rar.gifCH32F203 CBT6_PVD.zipimage.png

图1

image.png

图2


你好,我设置了对应的阈值电压,我不配置中断,只通过调用PWR_GetFlagStatus去检测供电状态,但实际上并不会进入我设置的判断条件。这个是一定需要配置中断吗?


您好,不用中断的方式也可以查询供电状态,但需要保证查询的及时性,代码如下:

image.png

image.png


只有登录才能回复,可以选择微信账号登录