码迷,mamicode.com
首页 > 其他好文 > 详细

STM32掉电检测

时间:2016-05-04 10:31:22      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:

void PVD_Iint(void)
{
EXTI_InitTypeDef EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);
EXTI_ClearITPendingBit(EXTI_Line16);
EXTI_InitStructure.EXTI_Line = EXTI_Line16;// 
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; 
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;//µçѹÉÏÉý»òϽµÔ½¹ýÉ趨·§ÖµÊ±¶¼²úÉúÖжϡ£
EXTI_InitStructure.EXTI_LineCmd = ENABLE; 
EXTI_Init(&EXTI_InitStructure);// ³õʼ
PWR_PVDLevelConfig(PWR_PVDLevel_2V9); 
PWR_PVDCmd(ENABLE);// ʹÄÜPVD

// 
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//ÖжϷÖ×éÅäÖÃ
NVIC_InitStructure.NVIC_IRQChannel = PVD_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
void PVD_IRQHandler(void)
{
CPU_SR_ALLOC();
YELLOWON;
if(EXTI_GetITStatus(EXTI_Line16) != RESET)
{
OS_CRITICAL_ENTER(); 
recordAddrtemp[0]=(u8)(recordAddr>>8);
recordAddrtemp[1]=(u8)recordAddr;
SPI_FLASH_BufferWrite(recordAddrtemp,2,sizeof(recordAddrtemp));
OS_CRITICAL_EXIT();  
EnableSend3();
delay_us(100);
USART_SendData(USART3,0xBB);
while (USART_GetFlagStatus(USART3,USART_FLAG_TC) !=SET);
EnableRec3();
delay_us(100);
EXTI_ClearITPendingBit(EXTI_Line16);
}
}

STM32掉电检测

标签:

原文地址:http://www.cnblogs.com/red-123/p/5457282.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!