金牌会员
 
- 积分
- 1970
- 金钱
- 1970
- 注册时间
- 2011-7-17
- 在线时间
- 4 小时
|

楼主 |
发表于 2011-12-1 10:04:08
|
显示全部楼层
回复【2楼】正点原子:
---------------------------------
后备电池更换了新的电池,用万用表测试,电池电压2.98V,另外检查了数据的确是写进去了
RCC->APB1ENR|=1<<28;//使能电源外设
RCC->APB1ENR|=1<<27;//使能备份域
PWR->CR|=1<<8;//解除后备域写保护
RTC->CRL|=1<<4;//进入配置模式
RTC->ALRL=al_count&0x0000ffff;
RTC->ALRH=al_count>>16;
RTC->CRL&=(~(1<<4));//退出配置
while(!(RTC->CRL&(1<<5)));//等待RTC寄存器更新完成
通过以上代码进行写入那个ALR寄存器,而且,写进去了,读出来也没问题,数值没有改变,奇怪的是,一旦按复位,ALR寄存器数据就会变为0xffffffff,也就是复位的时候ALR寄存器也被复位了,这和中文参考手册V10上所描述的有一定的区别。 |
|