标题: RTC_WaitForSynchro(); stm32单片机卡死是什么问题 [打印本页]

作者: buyaoxuebianc    时间: 2022-11-28 23:24
标题: RTC_WaitForSynchro(); stm32单片机卡死是什么问题


作者: Hephaestus    时间: 2022-11-29 21:21
外置RTC那就是IIC卡死了。如果是内置RTC那就是卡死在等LSE起振,,,LSE起振极其困难是STM32F1、F4的知名bug。
作者: Longan.Wang    时间: 2022-11-30 09:48
Hephaestus 发表于 2022-11-29 21:21
外置RTC那就是IIC卡死了。如果是内置RTC那就是卡死在等LSE起振,,,LSE起振极其困难是STM32F1、F4的知名bu ...

大概就是这个问题
作者: buyaoxuebianc    时间: 2023-8-5 13:35
Hephaestus 发表于 2022-11-29 21:21
外置RTC那就是IIC卡死了。如果是内置RTC那就是卡死在等LSE起振,,,LSE起振极其困难是STM32F1、F4的知名bu ...

外置电源了,忘掉电了
作者: @小白菜    时间: 2023-8-6 16:25
在使用STM32单片机时,使用函数RTC_WaitForSynchro()可能导致卡死的问题是因为以下几种原因之一:  外部晶体或者外部时钟未正常工作:STM32单片机的RTC模块依赖于外部时钟源或晶体振荡器。如果外部时钟源或晶体振荡器有问题,可能导致RTC模块无法正常工作,从而导致卡死现象。你可以检查你的硬件电路及时钟源的连接是否正确,并且确保时钟源的频率符合要求。  RTC模块未正确初始化:在使用RTC模块前,你需要确保正确地初始化RTC模块,包括配置时钟源、设置分频器、使能相应的中断等。如果RTC模块没有正确初始化,调用RTC_WaitForSynchro()函数可能会导致卡死。你可以检查你的初始化代码,确保所有的配置项都正确设置。  中断未正确处理:当RTC模块初始化完成后,需要正确处理RTC相关的中断。如果中断处理不正确,可能会导致卡死现象。你可以检查中断处理函数的代码,确保中断优先级和中断标志位的清除等操作都正确。  资源冲突:RTC模块可能与其他的模块或外设产生资源冲突,导致卡死现象。你可以检查你的代码,确保RTC模块与其他模块的使用没有冲突。  代码逻辑错误:在使用RTC_WaitForSynchro()函数时,如果有逻辑错误,比如条件判断错误或死循环等,都可能导致卡死现象。你可以仔细检查你的代码逻辑,寻找可能的问题所在。
作者: cnfloatleaf    时间: 2023-8-6 21:12
肯定是指内部RTC,我也正在看STM32,学习一下。
作者: cnfloatleaf    时间: 2023-8-7 11:31
我用的是STM32F4的RTC,也是等待RTC进入设置状态的时候卡死了,将RTC_ISR的INIT置位后,等INITF位变高电平就可以去设置RTC了,但是INITF位一直低电平,导致程序一只在等待,卡在这里,反复几次查程序,也没发现问题,网上找了一些解决方法也不行,我想再重新捋一遍,论坛中有了解这个情况的大佬也请出来指点一下。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1