看了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(); //全局中断使能
}
下面该怎么办?[/td]
以下内容为评论
[td]#define LED1_L() (GPIO_ResetBits(GPIOD,GPIO_Pin_6))
void CLK_INC(void) //时钟配置
{
CLK_SYSCLKDivConfig (CLK_SYSCLKDiv_16); //时钟16分频
}
void GPIO_INC(void) //IO口初始化
{
GPIO_Init(GPIOD,GPIO_Pin_6,GPIO_Mode_Out_PP_High_Slow);
}
void delayms(u16 i)
{
u16 j;
for(;i > 0;i --)
for(j = 500;j > 0;j --); //延时
}
void PWR_INC(void) //PWR初始化
{
PWR_PVDLevelConfig(PWR_PVDLevel_2V85); //PVD设置2.85V
PWR_PVDCmd(ENABLE); //PVD使能
PWR_PVDITConfig(ENABLE); //PVD中断使能
}
void main(void)
{
CLK_INC();
GPIO_INC();
PWR_INC(); //进入中断点亮LED
__enable_interrupt(); //全局中断使能
while (1)
{
}
}