数码之家

 找回密码
 立即注册
搜索
查看: 1747|回复: 15

[STM] RTC时钟源选择LSI就正常,选择LSE就不正常

[复制链接]
发表于 2023-4-15 08:16:20 | 显示全部楼层 |阅读模式
利用STM32CubeMX在为STM32L051 RTC配置时钟源时,如果选择LSI,程序运行正常;如果选择LSE,程序根本无法运行:


即使在错误处理函数中写入LED闪动代码,也无法运行,错误处理函数如下:void Error_Handler(void)
{
  /* USER CODE BEGIN Error_Handler_Debug */
  /* User can add his own implementation to report the HAL error return state */
  __disable_irq();
  while (1)
  {
                  HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
        HAL_Delay(100);
  }
  /* USER CODE END Error_Handler_Debug */
}


目前已经检查32.768K晶振(包括换晶振)、焊脚情况、旁路电容均未发现问题。
请大师指点一下,还有可能在哪个地方出问题。谢谢!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
发表于 2023-4-15 08:42:52 | 显示全部楼层
这2位检查一下,调试窗口
LSERDY=1才表示32768起振




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-15 08:48:01 | 显示全部楼层
inthsunshine 发表于 2023-4-15 08:42
这2位检查一下,调试窗口
LSERDY=1才表示32768起振

用HAL库的,没有操作寄存器。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-15 08:49:24 | 显示全部楼层
如果外接的32K晶振无法起振,合理应该会转到错误处理程序void Error_Handler(void)吧?
回复 支持 反对

使用道具 举报

发表于 2023-4-15 10:20:42 | 显示全部楼层
本帖最后由 inthsunshine 于 2023-4-15 10:23 编辑
lmn2005 发表于 2023-4-15 08:48
用HAL库的,没有操作寄存器。

keil调试串口可以看到这些寄存器的值

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2023-4-15 10:25:47 | 显示全部楼层
本帖最后由 inthsunshine 于 2023-4-15 10:27 编辑
lmn2005 发表于 2023-4-15 08:49
如果外接的32K晶振无法起振,合理应该会转到错误处理程序void Error_Handler(void)吧? ...

不会,如果外接的HSE无法起振或者根本没接,系统配置时钟的时候会跳过,而使用LSE作为时钟源,也就是你什么晶振都不接,程序也能跑,内置振荡是上电后默认作为时钟源的
回复 支持 反对

使用道具 举报

发表于 2023-4-15 15:59:27 | 显示全部楼层
lmn2005 发表于 2023-4-15 08:48
用HAL库的,没有操作寄存器。

HAL库也可以获取寄存器状态
回复 支持 反对

使用道具 举报

发表于 2023-4-16 07:46:33 | 显示全部楼层
外接晶体及负载电容看看有没有问题
回复 支持 反对

使用道具 举报

发表于 2023-4-16 11:14:06 | 显示全部楼层
设断点看一下卡在哪里


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2023-4-16 18:01:02 来自手机浏览器 | 显示全部楼层
我的stm32f103c8t6用rtc也遇到过卡死,lse不起振,网上说c8t6挑晶振要用6pf的晶振,还有就是bkp功能要打开。不知道楼主这个是不是也有类似问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-17 07:33:03 | 显示全部楼层
mmxx2015 发表于 2023-4-16 11:14
设断点看一下卡在哪里

手头暂时只有盗版的Jlink V7,前天试了,不能用于仿真,暂时也清楚是什么原因。
回复 支持 反对

使用道具 举报

发表于 2023-4-17 09:30:18 来自手机浏览器 | 显示全部楼层
lmn2005 发表于 2023-4-17 07:33
手头暂时只有盗版的Jlink V7,前天试了,不能用于仿真,暂时也清楚是什么原因。 ...

用旧版本驱动就可以仿真了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-17 11:45:44 | 显示全部楼层
595953427@qq 发表于 2023-4-17 09:30
用旧版本驱动就可以仿真了

用旧版本的话,在keil中无法添加STM32L0芯片(列表中没有这个芯片)。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2023-4-17 19:43:48 | 显示全部楼层
lmn2005 发表于 2023-4-17 11:45
用旧版本的话,在keil中无法添加STM32L0芯片(列表中没有这个芯片)。

我这里没问题


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-18 08:01:59 | 显示全部楼层

你的jlink版本是V9的,我的是V7的。你的是正版的还是自己升级的?
回复 支持 反对

使用道具 举报

发表于 2023-4-18 08:10:57 来自手机浏览器 | 显示全部楼层
lmn2005 发表于 2023-4-18 08:01
你的jlink版本是V9的,我的是V7的。你的是正版的还是自己升级的?

驱动跟硬件没关系,用旧版驱动就对了
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-2 06:55 , Processed in 0.140401 second(s), 11 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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