中级会员
 
- 积分
- 437
- 金钱
- 437
- 注册时间
- 2013-4-10
- 在线时间
- 84 小时
|
1金钱
备份寄存器BKP保存数据,前10个读写都很正常,从11个往后写入数据,读出来全部是0,不知道为什么,还是我设置的有问题,求解释?
#define BKP_DR1 ((uint16_t)0x0004)
#define BKP_DR2 ((uint16_t)0x0008)
#define BKP_DR3 ((uint16_t)0x000C)
#define BKP_DR4 ((uint16_t)0x0010)
#define BKP_DR5 ((uint16_t)0x0014)
#define BKP_DR6 ((uint16_t)0x0018)
#define BKP_DR7 ((uint16_t)0x001C)
#define BKP_DR8 ((uint16_t)0x0020)
#define BKP_DR9 ((uint16_t)0x0024)
#define BKP_DR10 ((uint16_t)0x0028)
以下不正常,读出来的数据全是0;
#define BKP_DR11 ((uint16_t)0x0040)
#define BKP_DR12 ((uint16_t)0x0044)
#define BKP_DR13 ((uint16_t)0x0048)
#define BKP_DR14 ((uint16_t)0x004C)
#define BKP_DR15 ((uint16_t)0x0050)
#define BKP_DR16 ((uint16_t)0x0054)
#define BKP_DR17 ((uint16_t)0x0058)
#define BKP_DR18 ((uint16_t)0x005C)
#define BKP_DR19 ((uint16_t)0x0060)
#define BKP_DR20 ((uint16_t)0x0064)
void BKP_Init(void)
{
unsigned int i,j;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
PWR_BackupAccessCmd(ENABLE);
//usRegHoldingBuf[0] 状态寄存器
for(i=1;i<11;i++)
{
usRegHoldingBuf= BKP_ReadBackupRegister(i*4);
}
usRegHoldingBuf[12]= BKP_ReadBackupRegister(BKP_DR12); //单独测试
// for(j=11;j<32;j++)
// {
// usRegHoldingBuf[j]= BKP_ReadBackupRegister((j-11)*4+64);
// }
}
void Write_BKP(void)
{
u16 i,j;
for(i=1;i<11;i++)
{
BKP_WriteBackupRegister(i*4, usRegHoldingBuf);
}
BKP_WriteBackupRegister(BKP_DR12, usRegHoldingBuf[12]); //单独测试
// for(j=11;j<32;j++)
// {
// BKP_WriteBackupRegister((j-11)*4+64, usRegHoldingBuf[j]);
// }
}
|
|