双城 发表于 2022-10-12 08:27

STM8L052C6T6的pvd电压监测异常

1、例如设置的是低于1.85v 产生中断,然后点亮灯提示。
2、实际效果出来是:如果是高于1.85v阀值的情况下上电一直工作,不断电,慢慢把电压调低到阀值以下,则不会进入PVD中断。如果是在低于1.85v阀值的情况下,上电,则会进入PVD中断,灯会亮。
3、想要的效果是:如果是高于1.85v阀值的情况下上电一直工作,不断电,慢慢把电压调低到阀值以下,要进入PVD中断,点亮灯。
4、求大神分析是什么情况。谢谢!

双城 发表于 2022-10-12 08:31

//-----------------------------------监控VDD电压初始化----------------------------------------
void PVD_Check_init(void)
{
//降PWR寄存器外围重新初始化为默认值
//PWR_CSR1=0x20;
//PWR_CSR2=0x01;

PWR_CSR1_PVDOF=1;    //低于阀值
PWR_CSR1_PVDIF=1;    //写1来清除标志位

/* PWR_CSR1_PLS检测等级
000: PVD threshold = 1.85 V typ.
001: PVD threshold = 2.05 V typ.
010: PVD threshold = 2.26 V typ.
011: PVD threshold = 2.45 V typ.
100: PVD threshold = 2.65 V typ.
101: PVD threshold = 2.85 V typ.
110: PVD Threshold = 3.05 V typ.
*/
PWR_CSR1_PLS=0;   //检测等级
PWR_CSR1_PVDIEN=1;//中断
PWR_CSR1_PVDE=1;    //打开检测

}

#pragma   vector=EXTIPVD_vector
__interruptvoidEXTIPVD_IRQHandler(void)
{      
      PWR_CSR1|=0x20;      //清除标志位
      
      LCD_RAM2 |= 0x02 ;   //点亮电池符号
      
}

討厭和人归類 发表于 2022-10-24 07:43

这个问题我还没遇到过,建议楼主可以咨询一下FAE看看怎么操作比较好

林间有新绿 发表于 2022-10-24 08:15

STM8能换成STM32就换吧,价格差不多,但是性能差很多

晚晚皆安 发表于 2022-10-24 08:47

有没有可能,需要把这个中断优先级提高一下呢?

偷吻月亮 发表于 2022-10-24 09:19

慢慢调到1.85V以下,就不会进入到中断是吧,那你是调再小都不会进入到中断么

笨蛋无需搭理 发表于 2022-10-24 09:52

建议可以使用库函数写,问题能好找点

热爱童话世界 发表于 2022-10-24 10:24

你这个PVD监测是不是就开机调用了一次啊?

岁月反驳 发表于 2022-10-24 10:56

你试试定时监测PVD电压看看呢?估计就应该行了

占得人间第一春 发表于 2022-10-24 11:28

其实你用ADC监测是不是能更好点儿,容易一些嘞

銀河 发表于 2022-10-24 11:59

楼主可以参考一下这个帖子,看看是否能帮到你,https://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=598034&page=1#pid2042153

可爱的白兔先生 发表于 2022-10-24 12:31

寄存器属实看不太懂,就问几个可能会引起检测不到的原因哈,中断打开了吗?优先级是多少?还有,你可以用仿真跟一下,为啥进去不中断的
页: [1]
查看完整版本: STM8L052C6T6的pvd电压监测异常