打印

急问:stm32 的rtc时钟必须用外部的晶振吗?

[复制链接]
7402|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sunshine98|  楼主 | 2008-3-25 11:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想只用内部时钟給rtc,快速看了资料好几遍也没找到该怎么操作。。:(
香主,給点建议吧。。:D
沙发
sunshine98|  楼主 | 2008-3-25 11:51 | 只看该作者

找到了,

可以用LSI来实现,呵呵,精度差也没关系,:D
自己调试一下。。试试~

使用特权

评论回复
板凳
香水城| | 2008-3-25 12:12 | 只看该作者

STM32的LSI可以作为内置RTC的时钟

但精度较差而且受供电和温度影响;好处是低成本。

使用特权

评论回复
地板
jtingwang| | 2008-4-17 21:48 | 只看该作者

LSI

使用特权

评论回复
5
jtingwang| | 2008-4-17 21:50 | 只看该作者

LSI精度

“精度较差而且受供电和温度影响”
----有没有精度、受供电和温度影响 方面的数据呢?
手册上只给了Typical 40KHz,Max 60KHz,Min 30KHz

使用特权

评论回复
6
香水城| | 2008-4-17 22:04 | 只看该作者

LSI精度受供电和温度影响

我没有更多的数据。

你已经看到手册上的参数,你也应该看到参数表下面的注解:所有的参数是在VDD=3V,环境温度为-40至105°C下的参数。

既然你要求不高,你可以做个实验实测一下电压对LSI频率的影响。

使用特权

评论回复
7
sunshine98|  楼主 | 2008-4-18 06:00 | 只看该作者

记得LSI不是32.768kHZ

所以个人认为,如果用作时钟长时间准确保存,需要用外部晶振。

使用特权

评论回复
8
jtingwang| | 2008-4-19 11:18 | 只看该作者

RTC使用LSI(40KHz)

准备用RTC每200ms产生一次定时中断,让Led每200ms开关一次。以下流程有没有问题或bug?

RTC使用LSI(40KHz)

1)通过函数RTC_SetPrescaler(7999)
将RTC周期设定为200ms

2)通过函数RTC_ITConfig(RTC_IT_SEC, ENABLE)
使能RTC秒中断

3)在中断向量表中,提供/* 19, INTISR[  3]  RTC Global Interrupt*/
对应的中断服务程序RTC_Global_Interrupt()

4)在中断服务程序中void RTC_Global_Interrupt( void )中:
void RTC_Global_Interrupt( void )
{
    if( RTC_GetITStatus(RTC_IT_SEC) != RESET )
    {
        RTC_ClearITPendingBit(RTC_IT_SEC);

        RTC_WaitForLastTask();

        /* Reset RTC Counter when Time is 23:59:59 */
        if(RTC_GetCounter() == 0x00015180)
        {
            RTC_SetCounter(0x0);

            RTC_WaitForLastTask();
         }

        //开关LED;
    }
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

48

主题

571

帖子

0

粉丝