久芯网

STM32F103 MCU执行到SystemClock_Config时钟初始化卡死

avatar dashiz 提问时间: 2023-08-10 18:02:38 / 未解决

各位,新年好。有个奇怪的问题困扰我几天了,一直调不好。我用网上的比如野火、硬石的HAL程序,在Keill里就是不能运行下去,我查了一下,是卡在SystemClock_Config()这一段里出不来,具体就是卡在if((HAL_GetTick() - tickstart ) > HSE_TIMEOUT_VALUE)这一句上。已经排除硬件原因,我用3.5标准库文件编程,时钟程序是可以运行,但用HAL,就是不行。我自己用stm32cubeMX编了一个简单的LED点亮程序,也是不行。不知问题出在哪里了,折腾了我一个春节。

今天同事电脑上试过,他编译后可以运行。我把同样的程序弄到我电脑上,用keil打开编译,也不行了。郁闷啦。 不知有没有同学碰到过类似情况,请教。

STM32cubemx版本是V6.4.0, Keil用V5.25和V5.35都试过。


如需获得 STM32F103 等器件的更多信息,请点击链接或 点击此处 联系在线客服!

15个回答
  • avatar dashiz
    回答时间: 2023-08-10 18:29:11
    废鱼 发表于 2022-2-10 08:37
    HAL_GetTick()看一下tick是不是正常增加。SystemClock_Config是在自己的代码中,还是system_stm32f1xx. ...

    [md]SystemClock_Config是在main.c里,时钟和LED外设都是在STM32cubemx里配置好的,应该没问题。我同事也检查过我的cubemx设置和keil程序,和他电脑上一样,但就是在我电脑上编译后不行,而他的没问题。

  • avatar dashiz
    回答时间: 2023-08-10 18:53:10
    废鱼 发表于 2022-2-12 10:25
    代码我这下载测试过了,是可以正常使用的。建议查看一下你外部晶振,示波器看一下晶振是否正常起振。 ...

    [md]我也怀疑是硬件问题了。刚才我在家里用野火的霸道板写了LED闪烁的程序,运行正常,看起来Keil和cubemx版本没问题。周一上班我用示波器测量一下看看。 多谢鱼老弟,多谢热心解答的诸多网友,谢谢。

  • avatar 废鱼
    回答时间: 2023-08-10 19:18:48
    dashiz 发表于 2022-2-10 15:42
    SystemClock_Config是在main.c里,时钟和LED外设都是在STM32cubemx里配置好的,应该没问题。我同事也 ...

    [md]start.s开始的时候要先运行SystemInit,这里如果时钟配置不对,后面运行会受影响。从你的描述上看,是tick不增加,tick中断不能正常工作导致的。你用的外部晶振是多大的?

  • avatar 废鱼
    回答时间: 2023-08-10 19:41:19

    HAL_GetTick()看一下tick是不是正常增加。SystemClock_Config是在自己的代码中,还是system_stm32f1xx.c中的?如果是自己的代码中,可能是system_stm32f1xx.c这个里面的系统配置不对,需要修改对应的晶振配置为电路板实际的。103默认应该是25Mhz

  • avatar wenyangzeng
    回答时间: 2023-08-10 19:59:16

    STM32F103使用CUBEMX需要对时钟树进行配置

  • avatar xmshao
    回答时间: 2023-08-10 20:16:40

    同學辛苦了! 會不會是你keil環境或配置有些問題呢?如果你基於HSI時鐘源來配置,如果你硬件電路及供電沒問題,并用CubeMx進行配置的話,只是點個燈怎麽都不該有問題啊。先用HSI配置試試,這樣可以先避開可能HSE電路方面的問題。不妨用示波器檢查下,你的復位脚的情況。

  • avatar butterflyspring
    回答时间: 2023-08-10 20:36:59

    可以试试官方cube库中的这个例程,这个是用8M外部晶体的,只要最后的主频不超过72M都能运行的。 这个是现成的工程,并且源码都有注释说明的。 STM32Cube_FW_F1_V1.8.0\Projects\STM3210E_EVAL\Examples\GPIO\GPIO_IOToggle\

  • avatar dashiz
    回答时间: 2023-08-10 20:54:23
    wenyangzeng 发表于 2022-2-10 09:19
    STM32F103使用CUBEMX需要对时钟树进行配置

    [md]是的,我的设置也是这样,但就是不行啊。

  • avatar dashiz
    回答时间: 2023-08-10 21:26:15
    xmshao 发表于 2022-2-10 09:59
    同學辛苦了! 會不會是你keil環境或配置有些問題呢?如果你基於HSI時鐘源來配置,如果你硬件電路及供電沒問 ...

    HSI试过了,也不行。应该不是电路问题,我用3.5标准库编过程,运行没问题。

  • avatar dashiz
    回答时间: 2023-08-10 21:54:38
    废鱼 发表于 2022-2-11 08:36
    [md]start.s开始的时候要先运行SystemInit,这里如果时钟配置不对,后面运行会受影响。从你的描述上看, ...

    8M的,

  • avatar 废鱼
    回答时间: 2023-08-10 22:27:03
    dashiz 发表于 2022-2-11 08:58
    8M的,

    你看一下system_stm32f1xx.c中HSE_VALUE的值是多少?

  • avatar dashiz
    回答时间: 2023-08-10 22:50:18
    废鱼 发表于 2022-2-11 09:12
    你看一下system_stm32f1xx.c中HSE_VALUE的值是多少?

    是8000000。我查了一下,在system_stm32f1xx.c和stm32f1xx_hal_conf.h里都有如下定义: #if !defined (HSE_VALUE) #define HSE_VALUE 8000000U #endif /* HSE_VALUE */

  • avatar 废鱼
    回答时间: 2023-08-10 23:11:32

    能不能把你测试的这个工程传输上来。我看一下。

  • avatar dashiz
    回答时间: 2023-08-10 23:36:15
    废鱼 发表于 2022-2-11 15:56
    能不能把你测试的这个工程传输上来。我看一下。

    [attach]485470[/attach][attach]485471[/attach] 我把所有文件都上传上来,所以文件尺寸大于9.8M了,只能分两个压缩文件。请帮忙看看,多谢。

  • avatar 废鱼
    回答时间: 2023-08-11 00:02:15
    dashiz 发表于 2022-2-11 17:05
    我把所有文件都上传上来,所以文件尺寸大于9.8M了,只能分两个压缩文件。请帮忙看看,多谢。 ...

    看不到文件啊。你可以把output或者debug的内容删除掉就小了

会员中心 微信客服
客服
回到顶部