找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1588|回复: 6
收起左侧

RTC_WaitForSynchro(); stm32单片机卡死是什么问题

[复制链接]
ID:1016007 发表于 2022-11-28 23:24 | 显示全部楼层 |阅读模式
20黑币

回复

使用道具 举报

ID:883242 发表于 2022-11-29 21:21 | 显示全部楼层
外置RTC那就是IIC卡死了。如果是内置RTC那就是卡死在等LSE起振,,,LSE起振极其困难是STM32F1、F4的知名bug。
回复

使用道具 举报

ID:77589 发表于 2022-11-30 09:48 | 显示全部楼层
Hephaestus 发表于 2022-11-29 21:21
外置RTC那就是IIC卡死了。如果是内置RTC那就是卡死在等LSE起振,,,LSE起振极其困难是STM32F1、F4的知名bu ...

大概就是这个问题
回复

使用道具 举报

ID:1016007 发表于 2023-8-5 13:35 | 显示全部楼层
Hephaestus 发表于 2022-11-29 21:21
外置RTC那就是IIC卡死了。如果是内置RTC那就是卡死在等LSE起振,,,LSE起振极其困难是STM32F1、F4的知名bu ...

外置电源了,忘掉电了
回复

使用道具 举报

ID:1089381 发表于 2023-8-6 16:25 | 显示全部楼层
在使用STM32单片机时,使用函数RTC_WaitForSynchro()可能导致卡死的问题是因为以下几种原因之一:  外部晶体或者外部时钟未正常工作:STM32单片机的RTC模块依赖于外部时钟源或晶体振荡器。如果外部时钟源或晶体振荡器有问题,可能导致RTC模块无法正常工作,从而导致卡死现象。你可以检查你的硬件电路及时钟源的连接是否正确,并且确保时钟源的频率符合要求。  RTC模块未正确初始化:在使用RTC模块前,你需要确保正确地初始化RTC模块,包括配置时钟源、设置分频器、使能相应的中断等。如果RTC模块没有正确初始化,调用RTC_WaitForSynchro()函数可能会导致卡死。你可以检查你的初始化代码,确保所有的配置项都正确设置。  中断未正确处理:当RTC模块初始化完成后,需要正确处理RTC相关的中断。如果中断处理不正确,可能会导致卡死现象。你可以检查中断处理函数的代码,确保中断优先级和中断标志位的清除等操作都正确。  资源冲突:RTC模块可能与其他的模块或外设产生资源冲突,导致卡死现象。你可以检查你的代码,确保RTC模块与其他模块的使用没有冲突。  代码逻辑错误:在使用RTC_WaitForSynchro()函数时,如果有逻辑错误,比如条件判断错误或死循环等,都可能导致卡死现象。你可以仔细检查你的代码逻辑,寻找可能的问题所在。
回复

使用道具 举报

ID:1085441 发表于 2023-8-6 21:12 | 显示全部楼层
肯定是指内部RTC,我也正在看STM32,学习一下。
回复

使用道具 举报

ID:1085441 发表于 2023-8-7 11:31 | 显示全部楼层
我用的是STM32F4的RTC,也是等待RTC进入设置状态的时候卡死了,将RTC_ISR的INIT置位后,等INITF位变高电平就可以去设置RTC了,但是INITF位一直低电平,导致程序一只在等待,卡在这里,反复几次查程序,也没发现问题,网上找了一些解决方法也不行,我想再重新捋一遍,论坛中有了解这个情况的大佬也请出来指点一下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表