久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2128|回復: 1
收起左側

STM32 PVD寄存器版本源程序

[復制鏈接]
ID:161657 發表于 2020-3-4 13:46 | 顯示全部樓層 |閱讀模式
前幾天研究了一下STM32的電源控制部分的功能,剛好需要一個 掉電瞬間保存數據到SMT32內部的功能,其實這個功能也是很簡單的,簡單的配置一下幾個寄存器的配置,然后打開中斷就可以了。這個。c文件經過我測試過的,470uf的電容LED會閃爍一下,但是無法保存數據,換了一個1000uf的電容可以保存11個2字節的數據到STM32(只測試這么多了,我實際上只需要2個字節就夠用了,掉電瞬間只是保存關鍵數據)C文件如下:
#include "pvd.h"
#include "sys.h"
#include "led.h"
#include "usart.h"
#include "stmflash.h"
#include "BMJ_data_ding_yi.h"//包埋機數據定義頭文件下
//掉電寫入數據測試成功  1000uf的電容可以測試寫入了12個字節的 數據 是沒有什么問題的
void PWR_PVD_Init(void)
{      
    RCC->APB1ENR|=1<<28;    //使能PORTB時鐘
    PWR->CR |= 7<<5; //2.9V 電壓閥值
    PWR->CR |= 1<<4; //PVD使能   
    EXTI->IMR|=1<<16;
    //EXTI->FTSR|=1<<16;//這里寫錯了 這樣寫進入不了中斷,注意上升沿和下降沿產生的中斷剛好是翻過來的,這里感覺是資料翻譯錯誤的原因造成的
   //改為下面這樣就正常了
   EXTI->RTSR|=1<<16;//配置這個寄存器才是斷電瞬間保存數據
    EXTI->EMR |=1<<16;
    EXTI->SWIER |= 1<<16;
    MY_NVIC_Init(1,0,PVD_IRQn,2);//組2,最低優先級
}
void PVD_IRQHandler(void)
{
   EXTI->PR |=1<<16;//清中斷   
   if (((PWR->CSR)&(1<<2))!=0)
         {
                                                        ZLG_LED=0;
                                                        LLZ_LED=0;
                                                        ZLH_LED=0;
                                                        YLH_LED1=0;
                                                        CZT_LED=0;
                                         
                                                                         TSJ_can_shu_she_zhi[0]=1;
                                                                         TSJ_can_shu_she_zhi[1]=2;
                                                                         TSJ_can_shu_she_zhi[2]=3;
                                                                         TSJ_can_shu_she_zhi[3]=4;
                                                                         TSJ_can_shu_she_zhi[4]=5;
                                                                         TSJ_can_shu_she_zhi[5]=6;
                                                                         TSJ_can_shu_she_zhi[6]=7;
                                                                         TSJ_can_shu_she_zhi[7]=8;
                                                                         TSJ_can_shu_she_zhi[8]=9;
                                                                         TSJ_can_shu_she_zhi[9]=10;
                                                                         TSJ_can_shu_she_zhi[10]=11;
                                                                        STMFLASH_Unlock();//解鎖
                                                                        STMFLASH_ErasePage(dou_dong_ci_shu_FLASH_BASE);//擦除地址 0X08070000  此函數內部有等待擦出完成
                                                                        STMFLASH_WriteHalfWord(dou_dong_ci_shu_FLASH_BASE,TSJ_can_shu_she_zhi[0]);//0X08070000地址寫入數組的第一個元素BMJ_wen_du_she_zhi[0]
                                                                        STMFLASH_WriteHalfWord(zhi_liu_shi_jian_FLASH_BASE,TSJ_can_shu_she_zhi[1]);//0X08070000地址寫入數組的第一個元素BMJ_wen_du_she_zhi[0]
                                                                        STMFLASH_WriteHalfWord(bao_hu_gang_hao_FLASH_BASE,TSJ_can_shu_she_zhi[2]);//0X08070000地址寫入數組的第一個元素BMJ_wen_du_she_zhi[0]
                                                                        STMFLASH_WriteHalfWord(ti_qian_jia_wen_FLASH_BASE,TSJ_can_shu_she_zhi[3]);//0X08070000地址寫入數組的第一個元素BMJ_wen_du_she_zhi[0]
                                                                        STMFLASH_WriteHalfWord(kuai_su_Time_FLASH_BASE,TSJ_can_shu_she_zhi[4]);//0X08070000地址寫入數組的第一個元素BMJ_wen_du_she_zhi[0]               
                                                                        STMFLASH_WriteHalfWord(shi_gang_la_wen_FLASH_BASE,TSJ_can_shu_she_zhi[5]);//0X08070000地址寫入數組的第一個元素BMJ_wen_du_she_zhi[0]
                                                                        STMFLASH_WriteHalfWord(shi_yi_gang_la_wen_FLASH_BASE,TSJ_can_shu_she_zhi[6]);//0X08070000地址寫入數組的第一個元素BMJ_wen_du_she_zhi[0]
                                                                        STMFLASH_WriteHalfWord(shi_er_gang_la_wen_FLASH_BASE,TSJ_can_shu_she_zhi[7]);//0X08070000地址寫入數組的第一個元素BMJ_wen_du_she_zhi[0]
                                                                        STMFLASH_WriteHalfWord(shi_gang_kuai_su_la_wen_FLASH_BASE,TSJ_can_shu_she_zhi[8]);//0X08070000地址寫入數組的第一個元素BMJ_wen_du_she_zhi[0]
                                                                        STMFLASH_WriteHalfWord(shi_yi_gang_kuai_sula_wen_FLASH_BASE,TSJ_can_shu_she_zhi[9]);//0X08070000地址寫入數組的第一個元素BMJ_wen_du_she_zhi[0]
                                                                        STMFLASH_WriteHalfWord(shi_er_gang_kuai_sula_wen_FLASH_BASE,TSJ_can_shu_she_zhi[10]);//0X08070000地址寫入數組的第一個元素BMJ_wen_du_she_zhi[0]
                                                                        STMFLASH_Lock();//上鎖
//                     
//                STMFLASH_Unlock();                                            
//                FLASH->SR|=1<<2; //清除PGERR位.
//                FLASH->SR|=1<<4; //清除WRPRT位.   
//                FLASH->SR|=1<<5; //清除WRPRT位.   
//                STMFLASH_Write_NoCheck(FLASH_ENSAVE_ADDR,(u16*)&TEXT_Buffer,sizeof(TEXT_Buffer));
//                  STMFLASH_Lock();                                                  
         }        
}


以上代碼資料51hei下載地址:
PVD.rar (1.33 KB, 下載次數: 8)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:161657 發表于 2020-3-4 13:49 | 顯示全部樓層
聲明一下,附件里面只有一個.c和.h文件,大家可以不需要下載附件,只看文中的代碼就行了,
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品一区中文字幕乱码 | 久久久久久九九九九九九 | 日韩视频在线免费观看 | 亚洲精品成人在线 | 亚洲精品一区二区在线 | 亚欧精品一区 | 国产高清精品一区二区三区 | 成人精品一区亚洲午夜久久久 | 日本成人久久 | caoporn国产| 欧美在线一区二区三区 | 精品久久一区二区三区 | 性一交一乱一伦视频免费观看 | 亚洲午夜视频在线观看 | 日本一区二区电影 | 国产日韩精品久久 | 日韩中文一区二区三区 | 波波电影院一区二区三区 | 亚洲视频欧美视频 | 国产美女自拍视频 | 成人一区二区电影 | 国产精品久久久久久久久久三级 | 国产精品99久久久久久久久 | 国产精品久久av | 亚洲狠狠爱| av手机免费在线观看 | 日韩免费高清视频 | 日韩羞羞| 国产成人高清视频 | 成av人电影在线 | 成人中文字幕在线 | 男女羞羞免费视频 | 在线中文字幕亚洲 | 欧美aⅴ在线观看 | 亚洲色图综合 | 精品一区二区三区在线观看 | 日本精品一区二区三区在线观看视频 | 国产精品国产精品国产专区不片 | 久久久精品网站 | 美女三区 | 综合色在线|