stm32 PVD掉电检测,进不了中断

问题描述

stm32 PVD掉电检测,进不了中断

芯片是stm32f103C8T6,PVD掉电检测,中断服务函数是通过串口发送数据。可是并没有发送,不知道是没有进入中断,还是进入了中断,但电压值过低,串口发送数据失败。求大神看看,写了好久没解决问题。代码如下:

void PVD_Init(void)
{
SystemInit();

EXTI_InitTypeDef EXTI_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);//PWR????

/* Configure EXTI Line16(PVD Output) to generate an interrupt on rising and
 falling edges */

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);
}

void PVD_NVIC(void)
{
NVIC_InitTypeDef NVIC_InitStructure;

/* Configure one bit for preemption priority */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

/* Enable the PVD Interrupt */
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)
{
if(EXTI_GetITStatus(EXTI_Line16) != RESET)
{
GPIO_SetBits(GPIOA,GPIO_Pin_1);
start();//串口发送数据
EXTI_ClearITPendingBit(EXTI_Line16);
}
}

int main()
{
.....

PWR_PVDLevelConfig(PWR_PVDLevel_2V9);
PWR_PVDCmd(ENABLE);

PVD_Init();
PVD_NVIC();

....
while(1)
{
;
}

}

解决方案

http://www.openedv.com/posts/list/10824.htm

时间: 2024-12-03 09:02:29

stm32 PVD掉电检测,进不了中断的相关文章

怎么预防固态硬盘掉电数据丢失?

  固态硬盘掉电数据丢失问题是长久以来一直以来困扰着我们的问题,往固态硬盘里面写入数据,首先存储到的并不是不怕掉电的闪存颗粒上,而是固态硬盘上的DDR内存颗粒中,一种易失性的高速缓存,一直要等到缓存写满,才会考虑是否要把内存中的数据移入到闪存当中去.不过大家也别太在意,毕竟这对于固态硬盘的性能提升,实在是太给力了. 固态硬盘 不过随之而来的问题就是,当固态硬盘瞬间掉电之后,高速数据缓存中的数据,可能就会真正的永久丢失了.解决之道也非常简单,那就是在固态硬盘中加入大容量的电容,当固态硬盘掉电之后,

oracle数据库掉电导致系统崩溃的恢复过程

这里简单记录一下,此次国庆加班恢复的某客户的2套Oracle RAC数据库,整个恢复过程中,2套rac差不多,因此这里以其中一套数据库的恢复过程为例进行简单分析说明.数据库由于为非归档,由于掉电导致重启之后系统无法正常open. 在正常open的过程中,报错如下错误: SQL> alter database open; alter database open * ERROR at line 1: ORA-00600: internal error code, arguments: [kcratr

Oracle RAC数据库掉电导致系统崩溃的恢复过程

这里简单记录一下,此次国庆加班恢复的某客户的2套Oracle RAC数据库,整个恢复过程中,2套rac差不多,因此这里以其中一套数据库的恢复过程为例进行简单分析说明.数据库由于为非归档,由于掉电导致重启之后系统无法正常open. 在正常open的过程中,报错如下错误: SQL> alter database open; alter database open * ERROR at line 1: ORA-00600: internal error code, arguments: [kcratr

acm-关于杭电ACM2031 进制转换感觉找不出自己的错误,求指出

问题描述 关于杭电ACM2031 进制转换感觉找不出自己的错误,求指出 #includeint main(){ long nr; char a[10000]; while(scanf(""%d%d""&n&r) == 2) { if(n == 0) printf(""0 ""); else { int i = 0; if(n while(n > 0) { a[i++] = n%r; n=n/r; } in

嵌入式-at24c里面的东西掉电数据不丢失主要是写保护起作用吗

问题描述 at24c里面的东西掉电数据不丢失主要是写保护起作用吗 我只是网65533地址写入一个u16的数据,掉电重启数据怎么没了呢 解决方案 at24c是EEPROM,如果你不对它重新编程,数据不会丢失. 看看你对它的写入本身有没有问题. 解决方案二: 不是写保护,写的时候直接就存储进去了,就跟你电脑里的磁盘一样,掉电丢失可能是你没有写进去 解决方案三: At24C04 解决方案四: for(i = 218;i <223;i++) //想存储器中写入256个数据 { IIC_write_dat

Percona XtraDB Cluster(PXC)掉电无法正常启动

办公室掉电,PXC集群环境无法启动,也就是说整个集群的状态处于丢失的情形.因此需要采取强制的方式来进行,见下面的描述. 一.故障现象 查看mysql错误日志如下: 2017-07-08 09:05:50 3913 [Note] WSREP: GCache history reset: old(0947d0da-4ffe-11e7-b169-137e84a69003:0) -> new(0947d0da-4ffe-11e7-b169-137e84a69003:112047) 2017-07-08

永不掉电的数据中心 减轻电源路径问题

电源对数据中心的重要性就好比心脏对人类的重要程度,虽然数据中心设计时可以选择不同的级别和冗余水平,但从来没有人希望数据中心掉电.不管是只有单一UPS的小型数据中心,还是具有完全冗余能力的大型数据中心,停电是不可避免的.下面是一些可以减轻电源路径问题的办法. 电源路径:成本vs可接受的风险 数据中心设计通常是由成本和可接受的风险因素推动的,Uptime协会的1-4层要求无需再做解释,它也远远超出了电源话题,但最基本的电源路径是简单的N设计(或1级),即没有冗余,电源路径中的每个组件都是一个单点故障

掉电是数据中心无法抹去的痛

电源对于数据中心的重要性就好比心脏对人类的重要程度,没有电源的持续供电数据中心就无法运转.当数据中心的设备出现自动断电.关机.电源故障等相关不良现象时,统称为掉电故障.掉电给数据中心带来的损失将非常严重,数据中心可能直接会停止运转,所有的应用系统都无法继续运行.比如2016年6月大连电信枢纽机房因市电故障,设备突然闪断,并造成部分线路短路,变压器受损引起跳闸,导致核心设备出现故障.掉电造成大连市区.旅顺地区移动网用户手机通话.短信等功能无法正常使用;2015年11月山西证券就因为数据中心机房掉电

国美电商演进路径:从借鸡生蛋到三驾马车并行

新浪科技 王采臣 在国美集团最近一轮的资本运作中,黄光裕就像一位隐身的国王,依然 透过高墙展现了他在电子商务布局上的新意志. 5月25日,国美电器香港联交所公告证实,国美电器已经以1200万元的价格将库巴网创始人王治全的剩下的20%的股权收购,完全控股库巴网.在此完成之后,又以总共9009万港元(约合7333万人民币)的价格向黄光裕旗下的国美锐动转让出库巴网以及新锐美(负责经营国美电器网上商城)各40%的股权. 至此,库巴完全"国美化",而国美的电商布局将贯彻黄氏战略.实际上,并不如外