在这里,看了很多,也学到了看多, 
看到没多少关于BKPSRAM。 
我也分享一个 
数据的读写是按S16来的,如果想换成float,则需要用到共用体,下面是代码 
 
 
//BKPSRAM初始化 
void BKPSRAM_int(void) 
{ 
        //BKPSRAM_BASE 
        //*(__IO uint16_t *) (BKPSRAM_BASE + offset) = 0 
 
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);        //启用压水堆时钟 
        PWR_BackupAccessCmd(ENABLE);                               //能够访问到备份域 
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_BKPSRAM, ENABLE);    //启用备份SRAM时钟 
        PWR_BackupRegulatorCmd(ENABLE);                            //启用备份SRAM的低功耗稳压器,以保持它在VBAT模式的内容 
        while(PWR_GetFlagStatus(PWR_FLAG_BRR) == RESET) {}         //等到备份SRAM的低功耗稳压器已准备就绪 
} 
 
//BKPSRAM数据读取 
s16 Rd_s16_BKPSRAM(u16 add) 
{ 
        u32 offset=0; 
        offset=(0x07ff&add)*2; 
        return *(__IO uint16_t *) (BKPSRAM_BASE + offset); 
} 
 
//BKPSRAM数据写 
void Write_s16_BKPSRAM(u16 add,s16 d) 
{ 
        u32 offset=0; 
        offset=(0x07ff&add)*2; 
        *(__IO uint16_t *) (BKPSRAM_BASE + offset) = d ; 
} |   
     
  
 |