你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
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秒左右。这个有点离谱了。这个是实际情况吗?还是我的设置配置有问题? 请大家指教!!谢谢
赞
0
收藏
0
评论
4
分享
发布时间:2010-1-7 13:23
举报
请先
登录
后回复
4个回答
废鱼
回答时间:2010-1-7 14:11:20
a0a.1 0b0c
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();
}
赞
0
评论
回复
支持
反对
wmh-129266
回答时间:2012-3-5 23:02:46
a0a.1 0b0c
回复: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内部晶振停电就不动了....
赞
0
评论
回复
支持
反对
yondyanyu
回答时间:2013-1-9 15:20:43
a0a.1 0b0c
回复:STM32的RTC内部时钟偏差太离谱了
所以RTCCLK=8M/128=64KHz? 设置RTC预分频值为65535?
8/128=62500吧?
赞
0
评论
回复
支持
反对
ddllxxrr
回答时间:2013-3-14 10:58:29
a0a.1 0b0c
回复:STM32的RTC内部时钟偏差太离谱了
楼主分频数算得不准吧,再有你用8MHZ,系统重启时时间能接上么????
赞
0
评论
回复
支持
反对
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
RE:STM32的RTC内部时钟偏差太离谱了
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();
}
回复: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();
}
你说32.768改 12MHZ 吗?
如果使用CPU内部晶振停电就不动了....
回复:STM32的RTC内部时钟偏差太离谱了
8/128=62500吧?
回复:STM32的RTC内部时钟偏差太离谱了