打印
[STM32F0]

怎么通过程序自身判定外部时钟有没有启振

[复制链接]
1492|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
donsbin|  楼主 | 2017-6-18 17:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用了STM32的外部低速时钟做RTC时钟源,发现经常出现时钟不走的情况。
开启LSE时钟,程序里等待LSE稳定也是能通过的。
 /* Enable the LSE OSC */
    RCC_LSEConfig(RCC_LSE_ON);
    /* Wait till LSE is ready */  
    while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET);
现在也出现待机一段时间RTC又不走了,现在想到的方法是通过程序判断时钟异常的,直接使用启用内部时钟LSI。
头痛,不知道怎么搞
沙发
huzi2099| | 2017-6-18 22:59 | 只看该作者
找找原因吧,可能是配的电容不合适,这种问题没必要软件处理,如果不起振软件也没有办法解决。

使用特权

评论回复
板凳
donsbin|  楼主 | 2017-6-19 09:35 | 只看该作者
目前这批硬件是没法动了,只能通过软件来想法子解决一下了

使用特权

评论回复
地板
东方教主| | 2017-6-19 10:07 | 只看该作者
板子晶振与单片机走线的距离、劣质的晶振 电容有问题会出现这种情况,另外环境温湿度都会引起时钟停震。这个很不可靠。
推荐在while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET);做超时,超时退出后再启用内部LSI时钟源。

使用特权

评论回复
5
donsbin|  楼主 | 2017-6-19 18:06 | 只看该作者
东方教主 发表于 2017-6-19 10:07
板子晶振与单片机走线的距离、劣质的晶振 电容有问题会出现这种情况,另外环境温湿度都会引起时钟停震。这 ...

准备该供应商了!这批出去的没办法了

使用特权

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

本版积分规则

个人签名:思亘七险,点落九宫,神游八极,纵横十方。

20

主题

96

帖子

2

粉丝