找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2011|回復(fù): 7
收起左側(cè)

單片機(jī)意外掉電數(shù)據(jù)快速保存方法

[復(fù)制鏈接]
ID:838763 發(fā)表于 2024-7-15 11:11 | 顯示全部樓層 |閱讀模式
最近在項(xiàng)目上遇到需要意外掉電保存20個(gè)字節(jié)的數(shù)據(jù),因?yàn)橐4娌榭催@些信息,所以數(shù)據(jù)保存在外部eeprom里面,但是掉電瞬間系統(tǒng)供電不能長(zhǎng)時(shí)間維持寫(xiě)入,,方法將要寫(xiě)的數(shù)據(jù)先保存在單片機(jī)內(nèi)部flash里面,開(kāi)機(jī)的時(shí)候在寫(xiě)到外部存貯器,STM32本身具有低電壓檢測(cè),這樣就不需要硬件電路配合就可以簡(jiǎn)單的實(shí)現(xiàn)大量數(shù)據(jù)意外掉電保存的要求,目前測(cè)試良好,提供給大家,看看哪位高人還有什么方法能決絕這樣類似問(wèn)題。
回復(fù)

使用道具 舉報(bào)

ID:466250 發(fā)表于 2024-7-15 17:17 | 顯示全部樓層
還可以用鐵電,寫(xiě)入次數(shù)接近無(wú)限次,無(wú)視掉電
回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2024-7-15 18:32 | 顯示全部樓層
藍(lán)藍(lán)小星星 發(fā)表于 2024-7-15 17:17
還可以用鐵電,寫(xiě)入次數(shù)接近無(wú)限次,無(wú)視掉電

鐵電一般是100億次以上,但并不是無(wú)限的,一樣的要掉電檢測(cè)的
回復(fù)

使用道具 舉報(bào)

ID:384109 發(fā)表于 2024-7-15 20:07 | 顯示全部樓層
要保存的數(shù)據(jù)在調(diào)電瞬間有更新的話該怎么保存呢
回復(fù)

使用道具 舉報(bào)

ID:466250 發(fā)表于 2024-7-16 01:52 | 顯示全部樓層
Y_G_G 發(fā)表于 2024-7-15 18:32
鐵電一般是100億次以上,但并不是無(wú)限的,一樣的要掉電檢測(cè)的

鐵電內(nèi)部就是用的ram,沒(méi)有寫(xiě)入等待時(shí)間。肯定是無(wú)限次,只是廠家保守了。掉電還寫(xiě)入引起出錯(cuò)的問(wèn)題,這是程序邏輯問(wèn)題,不是鐵電的問(wèn)題。
回復(fù)

使用道具 舉報(bào)

ID:421260 發(fā)表于 2024-7-16 07:46 | 顯示全部樓層
用了N年的掉電數(shù)據(jù)源保存!
void PVD_NVIC_Configuration(void)
{
    NVIC_InitTypeDef NVIC_InitStructure; //中斷優(yōu)先級(jí)配置
    EXTI_InitTypeDef EXTI_InitStructure;

    RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);

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

    EXTI_StructInit(&EXTI_InitStructure);
    EXTI_InitStructure.EXTI_Line = EXTI_Line16;             //PVD連接到中斷線16上
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;     //使用中斷模式
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;  //電壓低于閥值時(shí)產(chǎn)生中斷
    EXTI_InitStructure.EXTI_LineCmd = ENABLE;               //使能中斷線
    EXTI_Init(&EXTI_InitStructure);                         //初始

    PWR_PVDLevelConfig(PWR_PVDLevel_2V8);//設(shè)定監(jiān)控閥值
    PWR_PVDCmd(ENABLE);//使能PVD
}
/*-------------------------------------------------------------------------------
PVD中斷
---------------------------------------------------------------------------------*/
void PVD_IRQHandler(void)
{
    if(EXTI_GetITStatus(EXTI_Line16) != RESET)
    {
       這里些:代碼,需要保持的數(shù)據(jù)。。。
        EXTI_ClearITPendingBit(EXTI_Line16);//清中斷
    }
}
回復(fù)

使用道具 舉報(bào)

ID:230500 發(fā)表于 2024-7-16 08:45 | 顯示全部樓層
如果硬件不能更改; 就用鐵電吧;幾乎接近無(wú)限次寫(xiě)入!  其次再考慮一些偏門(mén)的方案,比如寫(xiě)入到時(shí)鐘芯片內(nèi)
回復(fù)

使用道具 舉報(bào)

ID:838763 發(fā)表于 2024-7-16 15:01 | 顯示全部樓層
szqinyi 發(fā)表于 2024-7-16 07:46
用了N年的掉電數(shù)據(jù)源保存!
void PVD_NVIC_Configuration(void)
{

這個(gè)程序本身沒(méi)有任何問(wèn)題,只是斷電系統(tǒng)耗電太大,寫(xiě)入數(shù)據(jù)較大,就會(huì)出問(wèn)題
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表