You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
602 B
C

#include "SWM221.h"
int main(void)
{
SystemInit();
GPIO_Init(GPIOA, PIN5, 1, 0, 0, 0); //输出, 接LED
SYS->PVDCR = (1 << SYS_PVDCR_EN_Pos) |
(1 << SYS_PVDCR_IE_Pos) |
(4 << SYS_PVDCR_LVL_Pos); //电源电压低于 3.7v 时产生中断
NVIC_EnableIRQ(GPIOA3_GPIOC3_PVD_IRQn);
SYS->LVRCR = (1 << SYS_LVRCR_EN_Pos) |
(1 << SYS_LVRCR_LVL_Pos) | //电源电压低于 2.0v 时复位芯片
(1 << SYS_LVRCR_WEN_Pos);
while(1==1)
{
GPIO_ClrBit(GPIOA, PIN5);
}
}
void GPIOA3_GPIOC3_PVD_Handler(void)
{
SYS->PVDSR = (1 << SYS_PVDSR_IF_Pos); //清除中断标志
GPIO_SetBit(GPIOA, PIN5);
}