欢迎来到EDA中国!
当前位置:网站首页 >技术专栏 > ARM

STM32 备份域寄存器功能验证代码片段

发布时间: 2012-08-01 11:03:15     来源: EDA中国

STM32,备份域,寄存器,功能,验证
STM32 备份域寄存器功能验证代码片段:

void tuning(unsigned char On_Off)
{
  if(On_Off)
    GPIOA -> BSRR = GPIO_Pin_6;//亮灯
  else
    GPIOA -> BRR = GPIO_Pin_6;//灭

}


unsigned char CheckBkp()
{
  unsigned short bkData = 0;
  unsigned char temp;
 
    /* Enable PWR and BKP clock */
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
  /* Enable write access to Backup domain */
  PWR_BackupAccessCmd(ENABLE);
  /* Clear Tamper pin Event(TE) pending flag */
  BKP_ClearFlag();
 
  temp = (RCC->CSR>>26)&0x3f;
 
  if( (temp&0x02) != 0)//上电复位
  {
    bkData = BKP_ReadBackupRegister(BKP_DR1);
    tuning(1);
  }
  else
  {
   BKP_WriteBackupRegister(BKP_DR1,0xCCDD);
  }
 
   //清除复位标志
  RCC_ClearFlag();
 
  return (bkData == 0xCCDD ? 1:0);
}


void main()
{
unsigned int i;

  if(CheckBkp() == 1)
  {
    for(i = 0; i < 5000000; i++)
      __asm("nop");
    tuning(0);
  }


while(1)
{
......
}
}


断电后,再上电,LED先亮后灭,结果正确
获取帮助