久芯网

STM32G031K8程序还没开始跑 刚跳过systemInit就出现FLASH_CR的CFGBSY: Programming or erase configu

avatar Hans.he 提问时间: 2023-08-24 12:36:57 / 未解决
STM32G031K8程序还没开始跑 刚跳过systemInit就出现FLASH_CR的CFGBSY: Programming or erase configu [相关图片]

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

14个回答
  • avatar butterflyspring
    回答时间: 2023-08-24 13:07:32
    Hans.he 发表于 2021-8-23 11:25
    其实我目前用的是最新版本的MDK_KEIL.v5.35.已经是最新版本了。编译器也是最新版本V6.16、 ...

    cube ide 编译器是免费的,方便的话可以试一下,或者有条件借用小伙伴电脑其他编译器试一下。因为之前听小伙伴说KEIL用这种方式会引起这个现象,不确定是否新版一定改过来。 还有一种办法就是不打断点,全速运行看看结果对不对,这种方式就是看不到结果,有点不太确信的感觉。(可以辅助添加串口打印可以验证寄存器内容)。 如果不是推测的那样,说明这个判断方向是不对的。

  • avatar Hans.he
    回答时间: 2023-08-24 13:33:54
    xmshao 发表于 2021-8-17 14:14
    信息比较有限,怀疑时钟与flash读取latency匹配方面的问题。

    您好,首先感谢您的回复和支持,我已经检查过了。这部分应该是ok 的。 LL_FLASH_SetLatency(LL_FLASH_LATENCY_2); while(LL_FLASH_GetLatency() != LL_FLASH_LATENCY_2) { } 而且有一个情况是这部分代码还没开始运行呢?也就是说main还没开始运行就已经出现置位了

  • avatar butterflyspring
    回答时间: 2023-08-24 13:56:03
    Hans.he 发表于 2021-8-18 08:58
    您好,首先感谢您的回复。 软件配置的内部晶振,这两天用ST官方例程也有此现场, 官方例程是STM32Cube_FW ...

    所以如同楼上的建议,先跑一个翻转GPIO的例程,这样可以确定是否是其他因素造成的原因而非FLASH配置方面的原因。如果GPIO的例程也有问题,就从其他方面找了,比如硬件,optionbyte等因素去查找或排除了

  • avatar xmshao
    回答时间: 2023-08-24 14:17:50

    信息比较有限,怀疑时钟与flash读取latency匹配方面的问题。 if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) { Error_Handler(); } 不知你的代码是否通过CubeMx进行配置,尽量用它来配置。 还有就是硬件方面,比方电源啊、跟复位有关的线路或信号啊等等。细细查查。

  • avatar 胤幻1988
    回答时间: 2023-08-24 14:38:31

    这个毛病出的有点奇怪,硬件方面晶振配置的是外部还是内部,MCU型号应该无误吧~用官方的一个最小GPIO例程,下载试试看下~

  • avatar Hans.he
    回答时间: 2023-08-24 14:57:00
    胤幻1988 发表于 2021-8-18 08:53
    这个毛病出的有点奇怪,硬件方面晶振配置的是外部还是内部,MCU型号应该无误吧~用官方的一个最小GPIO例程, ...

    您好,首先感谢您的回复。 软件配置的内部晶振,这两天用ST官方例程也有此现场, 官方例程是STM32Cube_FW_G0_V1.5.0\Projects\NUCLEO-G031K8\Examples\FLASH\FLASH_EraseProgram。

  • avatar Hans.he
    回答时间: 2023-08-24 15:29:03
    butterflyspring 发表于 2021-8-18 11:05
    所以如同楼上的建议,先跑一个翻转GPIO的例程,这样可以确定是否是其他因素造成的原因而非FLASH配置方面 ...

    您好,谢谢您的回复,下图就是我用官方例程的example_LL测试的 现象一样。整的我有点蒙了。

  • avatar Hans.he
    回答时间: 2023-08-24 15:51:34
    butterflyspring 发表于 2021-8-18 11:05
    所以如同楼上的建议,先跑一个翻转GPIO的例程,这样可以确定是否是其他因素造成的原因而非FLASH配置方面 ...

    您好,谢谢您的回去,已测试现象一致,用的工程是官方例程example_LL中的GPIO工程。

  • avatar butterflyspring
    回答时间: 2023-08-24 16:21:03
    Hans.he 发表于 2021-8-18 16:15
    您好,谢谢您的回去,已测试现象一致,用的工程是官方例程example_LL中的GPIO工程。 ...

    奇怪了,我这边试了一下,怎么都没跑出来。我用的是官方的nucleo 板STM32G031. 我测试前先完全清空了芯片,然后下载官方的GPIO例程。 要不再看看你的条件有什么不同。

  • avatar Hans.he
    回答时间: 2023-08-24 16:43:12
    butterflyspring 发表于 2021-8-19 14:50
    奇怪了,我这边试了一下,怎么都没跑出来。我用的是官方的nucleo 板STM32G031. 我测试前先完全清空了芯 ...

    您好 太感谢你也在测试,您方便能在main处打个断点吗?然后再run。跳转到main看看啥情况。我也是用的库,也擦除了芯片。

  • avatar butterflyspring
    回答时间: 2023-08-24 17:09:45
    Hans.he 发表于 2021-8-19 19:26
    您好 太感谢你也在测试,您方便能在main处打个断点吗?然后再run。跳转到main看看啥情况。我也是用的库, ...

    打了断点了,也是没有置位哦

  • avatar Hans.he
    回答时间: 2023-08-24 17:35:23
    butterflyspring 发表于 2021-8-20 11:06
    打了断点了,也是没有置位哦

    搞不懂了 ,不知道是不是硬件导致,我这个板子是自己画的板子

  • avatar butterflyspring
    回答时间: 2023-08-24 17:53:31
    Hans.he 发表于 2021-8-20 17:10
    搞不懂了 ,不知道是不是硬件导致,我这个板子是自己画的板子

    换一个编译器试试,或者试试KEIL最新版。可能之前的版本使用了软件断点设置,这时候会写一个软件指令过去,因为硬件断点有限。 编译器有时候也很难做的~~。 看看是不是这个原因引起的

  • avatar Hans.he
    回答时间: 2023-08-24 18:24:06
    butterflyspring 发表于 2021-8-23 11:09
    换一个编译器试试,或者试试KEIL最新版。可能之前的版本使用了软件断点设置,这时候会写一个软件指令过去 ...

    其实我目前用的是最新版本的MDK_KEIL.v5.35.已经是最新版本了。编译器也是最新版本V6.16、

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