你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32的RTC内部时钟偏差太离谱了

[复制链接]
LeoRuan 提问时间:2010-1-7 13:23 /
我使用STM32F103VC,为了节省成本,把32768的RTC外部时钟去掉了,改为内部时钟HSE/128。 我使用的主晶振是8MHz的。HSE是1分频,所以也是8M. 所以RTCCLK=8M/128=64KHz。 设置RTC预分频值为65535,得到秒计数。但是实际测量发现每分钟居然慢2.8秒左右。这个有点离谱了。这个是实际情况吗?还是我的设置配置有问题? 请大家指教!!谢谢
收藏 评论4 发布时间:2010-1-7 13:23

举报

4个回答
回答时间:2010-1-7 14:11:20

RE:STM32的RTC内部时钟偏差太离谱了

这个不准确,确实不太好。我建议你使用外部晶振,不要使用这个。我给你一段代码,我实验过了。我的是12M晶振。
void RTC_Configuration(void)
{
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
  PWR_BackupAccessCmd(ENABLE);
  BKP_DeInit();
      
  RCC_RTCCLKConfig(RCC_RTCCLKSource_HSE_Div128);
  RCC_RTCCLKCmd(ENABLE);
  RTC_WaitForSynchro();
  RTC_WaitForLastTask();
  RTC_ITConfig(RTC_IT_SEC, ENABLE);
  RTC_WaitForLastTask();
  RTC_SetPrescaler(93750); /* RTC period = RTCCLK/RTC_PR = (93.750 KHz)/(RTC+1) */   
  RTC_WaitForLastTask();
}
wmh-129266 回答时间:2012-3-5 23:02:46

回复:STM32的RTC内部时钟偏差太离谱了

回复第 2 楼 于2010-01-07 06:11:20发表:
这个不准确,确实不太好。我建议你使用外部晶振,不要使用这个。我给你一段代码,我实验过了。我的是12M晶振。
void RTC_Configuration(void)
{
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
PWR_BackupAccessCmd(ENABLE);
BKP_DeInit();

RCC_RTCCLKConfig(RCC_RTCCLKSource_HSE_Div128);
RCC_RTCCLKCmd(ENABLE);
RTC_WaitForSynchro();
RTC_WaitForLastTask();
RTC_ITConfig(RTC_IT_SEC, ENABLE);
RTC_WaitForLastTask();
RTC_SetPrescaler(93750); /* RTC period = RTCCLK/RTC_PR = (93.750 KHz)/(RTC+1) */   
RTC_WaitForLastTask();


你说32.768改 12MHZ 吗?
如果使用CPU内部晶振停电就不动了....
yondyanyu 回答时间:2013-1-9 15:20:43

回复:STM32的RTC内部时钟偏差太离谱了

所以RTCCLK=8M/128=64KHz? 设置RTC预分频值为65535?
 
8/128=62500吧?
ddllxxrr 回答时间:2013-3-14 10:58:29

回复:STM32的RTC内部时钟偏差太离谱了

楼主分频数算得不准吧,再有你用8MHZ,系统重启时时间能接上么????
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
13245底部标题123相同标题
12底部标题123相同标题
33333底部标题123相同序号
3435底部标题-无链接
关注我们
st-img 微信公众号
st-img 手机版