2025年时钟配置代码(时钟配置命令)

时钟配置代码(时钟配置命令)div id core ai summary tool div p 目前硬件核心板存在一个问题 外部 32 768KHz 的晶振经常无法起振 硬件工程师将晶振两端的 1M 电阻去掉 电容从 10pF 换成 6pF 后大部分能起振了 个别的还是不行 p

大家好,我是讯享网,很高兴认识大家。



 <div id="core-ai-summary-tool"></div><p>    目前硬件核心板存在一个问题&#xff0c;外部32.768KHz的晶振经常无法起振&#xff0c;硬件工程师将晶振两端的1MΩ电阻去掉&#xff0c;电容从10pF换成6pF后大部分能起振了&#xff0c;个别的还是不行。目前是外部LSE无法起振的情况下直接死机&#xff0c;为了让上位机知道核心板是否在正常工作&#xff0c;要保证外部晶振无法起振的情况下切换到内部晶振&#xff0c;系统其他功能还能正常工作。</p> 

讯享网

    先配置下外部时钟:

1、RCC选择外部晶振


讯享网

2、Timers的RTC栏里,勾选 Activate两个,RTC OUT 选择 Disable

3、参数设置,日期格式采用二进制方式:Binary data format,其他日历时间自行设置

4、时钟树配置:选择外部晶振:LSE

    通过以上操作就完成了RTC的配置。

    在modbus校时指令和应用程序中对时间和日期进行更新,两个应用中都是对时间和日期的写操作,因此需要一个互斥量保持数据完整性。

    modbus校时线程代码如下:

讯享网

    时间更新线程如下:

 

    解决最后的问题。仿真的时候可以看到,外部晶振没有起振的情况下死机而无法正常运行,为了解决此问题,要修改超时的库函数,并且切换到LSI。

    void SystemClock_Config(void)改为:

讯享网

    库函数 HAL_RCC_OscConfig(RCC_OscInitTypeDef  *RCC_OscInitStruct) 也要做修改,修改如下:其中超时使用  RCC_Delay(1);   // 72MHz,因为使用sysclick修改的代码量会很大。

 

    修改的程序测试,上电等待5s左右程序开始正常运行,关闭了LSE,切换到了内部LSI,后期可以补充将RTC初始化失败的标记传到上位机。

作者:星元的天空


小讯
上一篇 2025-05-05 12:31
下一篇 2025-04-26 19:22

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/156553.html