你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
Hans.he 提问时间:2021-8-17 11:24 / 未解决
微信图片_20210817093828.png
收藏 评论17 发布时间:2021-8-17 11:24

举报

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

...

cube ide 编译器是免费的,方便的话可以试一下,或者有条件借用小伙伴电脑其他编译器试一下。因为之前听小伙伴说KEIL用这种方式会引起这个现象,不确定是否新版一定改过来。
还有一种办法就是不打断点,全速运行看看结果对不对,这种方式就是看不到结果,有点不太确信的感觉。(可以辅助添加串口打印可以验证寄存器内容)。 如果不是推测的那样,说明这个判断方向是不对的。
Hans.he 回答时间:2021-8-17 16:14:30
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还没开始运行就已经出现置位了
butterflyspring 回答时间:2021-8-18 11:05:58
Hans.he 发表于 2021-8-18 08:58
您好,首先感谢您的回复。
软件配置的内部晶振,这两天用ST官方例程也有此现场,
官方例程是STM32Cube_FW ...

所以如同楼上的建议,先跑一个翻转GPIO的例程,这样可以确定是否是其他因素造成的原因而非FLASH配置方面的原因。如果GPIO的例程也有问题,就从其他方面找了,比如硬件,optionbyte等因素去查找或排除了
xmshao 回答时间:2021-8-17 14:14:13
信息比较有限,怀疑时钟与flash读取latency匹配方面的问题。


if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
  {

    Error_Handler();
  }



不知你的代码是否通过CubeMx进行配置,尽量用它来配置。


还有就是硬件方面,比方电源啊、跟复位有关的线路或信号啊等等。细细查查。
胤幻1988 回答时间:2021-8-18 08:53:15
这个毛病出的有点奇怪,硬件方面晶振配置的是外部还是内部,MCU型号应该无误吧~用官方的一个最小GPIO例程,下载试试看下~
Hans.he 回答时间:2021-8-18 08:58:11
胤幻1988 发表于 2021-8-18 08:53
这个毛病出的有点奇怪,硬件方面晶振配置的是外部还是内部,MCU型号应该无误吧~用官方的一个最小GPIO例程, ...

您好,首先感谢您的回复。
软件配置的内部晶振,这两天用ST官方例程也有此现场,
官方例程是STM32Cube_FW_G0_V1.5.0\Projects\NUCLEO-G031K8\Examples\FLASH\FLASH_EraseProgram。
Hans.he 回答时间:2021-8-18 16:01:42
butterflyspring 发表于 2021-8-18 11:05
所以如同楼上的建议,先跑一个翻转GPIO的例程,这样可以确定是否是其他因素造成的原因而非FLASH配置方面 ...

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

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

您好,谢谢您的回去,已测试现象一致,用的工程是官方例程example_LL中的GPIO工程。
butterflyspring 回答时间:2021-8-19 14:50:10
Hans.he 发表于 2021-8-18 16:15
您好,谢谢您的回去,已测试现象一致,用的工程是官方例程example_LL中的GPIO工程。
...

奇怪了,我这边试了一下,怎么都没跑出来。我用的是官方的nucleo 板STM32G031.  我测试前先完全清空了芯片,然后下载官方的GPIO例程。 要不再看看你的条件有什么不同。
STM32G031 CFGBSY.PNG
Hans.he 回答时间:2021-8-19 19:26:27
butterflyspring 发表于 2021-8-19 14:50
奇怪了,我这边试了一下,怎么都没跑出来。我用的是官方的nucleo 板STM32G031.  我测试前先完全清空了芯 ...

您好 太感谢你也在测试,您方便能在main处打个断点吗?然后再run。跳转到main看看啥情况。我也是用的库,也擦除了芯片。
butterflyspring 回答时间:2021-8-20 11:06:57
Hans.he 发表于 2021-8-19 19:26
您好 太感谢你也在测试,您方便能在main处打个断点吗?然后再run。跳转到main看看啥情况。我也是用的库, ...

打了断点了,也是没有置位哦
STM32G031 CFGBSY2.PNG
Hans.he 回答时间:2021-8-20 17:10:41
butterflyspring 发表于 2021-8-20 11:06
打了断点了,也是没有置位哦

搞不懂了 ,不知道是不是硬件导致,我这个板子是自己画的板子
butterflyspring 回答时间:2021-8-23 11:09:18
Hans.he 发表于 2021-8-20 17:10
搞不懂了 ,不知道是不是硬件导致,我这个板子是自己画的板子

换一个编译器试试,或者试试KEIL最新版。可能之前的版本使用了软件断点设置,这时候会写一个软件指令过去,因为硬件断点有限。 编译器有时候也很难做的~~。 看看是不是这个原因引起的
Hans.he 回答时间:2021-8-23 11:25:05
butterflyspring 发表于 2021-8-23 11:09
换一个编译器试试,或者试试KEIL最新版。可能之前的版本使用了软件断点设置,这时候会写一个软件指令过去 ...

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

12下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版