打印
[STM32F1]

分享掉电保存值flash

[复制链接]
1079|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
七颗咖啡豆|  楼主 | 2016-11-23 10:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void PVD_Init(void)
{  
   NVIC_InitTypeDef NVIC_InitStruct;
   EXTI_InitTypeDef EXTI_InitStructure;

        RCC_APB1PeriphClockCmd( RCC_APB1Periph_PWR, ENABLE);
        PWR_PVDLevelConfig(PWR_PVDLevel_2V9);
        
        NVIC_InitStruct.NVIC_IRQChannel = PVD_IRQn;
        NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0;
        NVIC_InitStruct.NVIC_IRQChannelSubPriority = 1;
        NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;


        NVIC_Init(&NVIC_InitStruct);//允许中断

        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_PVDCmd(ENABLE);
}

初始化  
注意 门限电压根据实际设置
中断优先级要高

沙发
七颗咖啡豆|  楼主 | 2016-11-23 10:34 | 只看该作者
void PVD_IRQHandler(void)
{


        EXTI_ClearITPendingBit(EXTI_Line16);
        if(PWR_GetFlagStatus(PWR_FLAG_PVDO)) //
        {
                PWR_ClearFlag(PWR_FLAG_PVDO);

                LosePowerSeve();
        }       
}


void LosePowerSeve()
{
        FLASH_Unlock();
        FLASH_ProgramHalfWord(0x5f800,ErrorThingNumber);//
        FLASH_ProgramHalfWord(0x5f802,FlashErrorNowP);//
        FLASH_Lock();//上锁
}

void SysSet_init()
{
        FLASH_Unlock();       
        FLASH_ErasePage(0x5f800 );//擦除这个扇区
        FLASH_Lock();//上锁       
}

需要掉电保存的数据单独放在一个扇区,在程序开始时清flash

使用特权

评论回复
板凳
七颗咖啡豆|  楼主 | 2016-11-23 10:40 | 只看该作者
注意flash地址不要踩到程序

使用特权

评论回复
地板
wahahaheihei| | 2016-11-23 13:19 | 只看该作者
如果突然断电,那怎么保存啊。。

使用特权

评论回复
5
mmuuss586| | 2016-11-23 14:56 | 只看该作者
谢谢分享;

使用特权

评论回复
6
643757107| | 2016-11-23 17:47 | 只看该作者
掉电是主动掉还是突然断电了,如果突然断电,程序不就不能执行了。

使用特权

评论回复
7
Jessicakjdsl| | 2016-11-23 19:00 | 只看该作者
意思是再上电的时候能够按照掉电前的指令运行吗?

使用特权

评论回复
8
gyh974| | 2016-11-23 19:19 | 只看该作者

使用特权

评论回复
9
zhuomuniao110| | 2016-11-23 20:04 | 只看该作者
这种就好比主动关机的一种方式,就好比断电模式,又能自动唤醒那种。

使用特权

评论回复
10
Ryze| | 2016-11-23 21:36 | 只看该作者
再上电的时候能够按照掉电前的指令运行

差不多这意思,应该是再上电时,恢复掉电前的状态

使用特权

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

本版积分规则

51

主题

508

帖子

4

粉丝