打印
[STM8]

求助:stm8l的PVD低电压检测程序

[复制链接]
2500|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
spiriter3|  楼主 | 2014-12-9 13:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

看了stm8l的资料,知道了可以通过PVD直接对低电压进行程序操作,省去了AD转换那些麻烦问题。但是我从没使用过,看了网上有人发过stm32的PVD电压检测程序,一头雾水。请大家指导下STM8L的PVD低电压检测该怎么写,使用官方固件库,比如低于2.65V就调用LED闪。
void LED_work(void)
{...}
void PWR_INC(void)                                        //PWR初始化
{
   PWR_PVDLevelConfig(PWR_PVDLevel_2V65);                  //PVD设置2.65V  
   PWR_PVDCmd(ENABLE);                                     //PVD使能
  PWR_PVDITConfig(ENABLE);                                //PVD中断使能
__enable_interrupt();                                    //全局中断使能
}
下面该怎么写?
沙发
spiriter3|  楼主 | 2014-12-9 16:33 | 只看该作者
RM0031的70页:
Bit 6 PVDOF: PVD output flag
This bit is set and cleared by hardware.
0: VDD/VDDA is above the VPVD threshold
1: VDD/VDDA is below the VPVD threshold
这个是控制配置,但是怎么做了?
有人说需要低压标志,固件库里:
enum   PWR_FLAG_TypeDef { PWR_FLAG_PVDOF = (uint8_t)0x40, PWR_FLAG_PVDIF = (uint8_t)0x20, PWR_FLAG_VREFINTF = (uint8_t)0x01 }
PVDOF这个就是低压高压的。又该怎么做?

使用特权

评论回复
板凳
airwill| | 2014-12-9 20:34 | 只看该作者
如果通过使能欠压中断:
  PWR_PVDITConfig(ENABLE);                                //PVD中断使能
那么可以在中断里实现.

不过你这个要求并非一定要中断.
   PWR_PVDLevelConfig(PWR_PVDLevel_2V65);                  //PVD设置2.65V  
   PWR_PVDCmd(ENABLE);      
之后,  通过检查 PVDOF 标志, 即下面2楼的代码就可以, 我看楼主应该是对这个芯片和编程还不熟悉吧, 没事, 多试试吧,                             

使用特权

评论回复
地板
mmuuss586| | 2014-12-9 23:21 | 只看该作者
http://www.stm8.cn/news/STM32File/1729.html
参考网上这个帖子看看;

使用特权

评论回复
5
googcheng| | 2019-12-31 14:33 | 只看该作者
mmuuss586 发表于 2014-12-9 23:21
http://www.stm8.cn/news/STM32File/1729.html
参考网上这个帖子看看;

版主 链接失效了

使用特权

评论回复
6
googcheng| | 2019-12-31 14:53 | 只看该作者
本帖最后由 googcheng 于 2019-12-31 15:26 编辑
airwill 发表于 2014-12-9 20:34
如果通过使能欠压中断:
  PWR_PVDITConfig(ENABLE);                                //PVD中断使能
那么可 ...

如果使用电池供电 请问这个只会中断一次吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

30

帖子

0

粉丝