搜索
bottom↓
回复: 29

提示一个STM32 CUBEMX 生成代码的 BUG

[复制链接]

出0入0汤圆

发表于 2019-11-29 17:22:28 | 显示全部楼层 |阅读模式
最新的 CubeMX , 最新的库 STM32Cube_FW_F1_V1.8.0。
使用串口DMA,main.c 生成的代码是:

/* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USART1_UART_Init();
  MX_USART2_UART_Init();
  MX_DMA_Init();

结果不对,调了两天,最后发现要这样:

/* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_DMA_Init();
  MX_USART1_UART_Init();
  MX_USART2_UART_Init();

回头看了之前的工程,生成的代码是后面这种啊。

阿莫论坛20周年了!感谢大家的支持与爱护!!

如果想吃一顿饺子,就得从冰箱里取出肉,剁馅儿,倒面粉、揉面、醒面,擀成皮儿,下锅……
一整个繁琐流程,就是为了出锅时那一嘴滚烫流油的热饺子。

如果这个过程,禁不住饿,零食下肚了,饺子出锅时也就不香了……《非诚勿扰3》

出0入0汤圆

发表于 2019-11-30 20:03:41 | 显示全部楼层
不知道你用的什么版本,最新版本是没有问题的

出0入0汤圆

发表于 2019-12-2 22:28:02 | 显示全部楼层
5.2.0 + FW1.6/1.7测试正常~

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2019-12-2 22:39:08 | 显示全部楼层
一直使用多串口DMA生成,表示没遇到过

出0入0汤圆

发表于 2019-12-2 23:26:30 | 显示全部楼层
我半个月前用 STM32CubeMX 时也遇到了,看来当时应该发个帖子
不过感觉 STM32 HAL 库本身问题就不少

出0入0汤圆

发表于 2019-12-2 23:30:53 | 显示全部楼层


这是当时的修改,我用的是 STM32Cube_FW_F0_V1.11.0 库

本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2019-12-3 09:12:58 | 显示全部楼层
ST飘了,用户麻烦了

出0入8汤圆

发表于 2019-12-3 09:32:28 | 显示全部楼层
CubeMX V5.4.0
F1 V1.8.0
测试正常。

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2019-12-3 10:25:06 | 显示全部楼层
这两天也在用,5.4版本,没发现DMA有什么问题

出0入0汤圆

发表于 2019-12-3 11:36:53 | 显示全部楼层
LS 测试正常的试 DMA 能否正常工作了吗?

我这测试要么把 MX_DMA_Init() 的调用放到 MX_SPI1_Init() 等用到 DMA 的外设初始化前,
要么在那些外设的 MSP 初始化函数调用 HAL_DMA_Init() 前先调用一下 __HAL_RCC_DMA1_CLK_ENABLE() 使能 DMA 的时钟

出0入0汤圆

 楼主| 发表于 2019-12-3 12:35:58 | 显示全部楼层
本帖最后由 yaoyyie2003 于 2019-12-3 12:38 编辑

我重新试了一遍,结果依然是错的,难道不同的机器生成的代码不同?
所用版本:STM32CubeMX 5.4.0.    STM32Cube FW_F1 V1.8.0
win10 LTSC


将CUBEMX文件也上传上来,大家试试



本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2019-12-3 17:27:47 | 显示全部楼层
只保留ioc文件,其他都删除完再生成一下看看。

出0入0汤圆

发表于 2019-12-3 19:55:04 | 显示全部楼层
https://mp.weixin.qq.com/s/Tum6hn9vCc8kx_V0Kh9whw

出0入169汤圆

发表于 2019-12-3 21:19:41 来自手机 | 显示全部楼层
是有bug的,有次使用了timer4,结果define TIMX的地方直接是空的,换成别的timer就都正常。

出0入476汤圆

发表于 2019-12-3 21:24:24 | 显示全部楼层
上个月第一次玩CUBEMX   ,程序下载可以,不能调试。 找了一周无果,后来请高手一步步查,原来引脚的swd没定义,代码里直接屏蔽swd接口了

出0入0汤圆

 楼主| 发表于 2019-12-3 22:11:27 | 显示全部楼层
zly_1980 发表于 2019-12-3 17:27
只保留ioc文件,其他都删除完再生成一下看看。

试过了,依然如此

出10入210汤圆

发表于 2019-12-3 22:59:14 | 显示全部楼层
按楼主的版本测试了一下,结果与楼主相同。

出10入210汤圆

发表于 2019-12-4 08:29:14 | 显示全部楼层
我的电脑上确认是STM32CubeMx5.4的问题,改为5.3版,FW还是1.8.0,代码就对了。

出0入0汤圆

 楼主| 发表于 2019-12-4 09:19:18 | 显示全部楼层
rainbow 发表于 2019-12-4 08:29
我的电脑上确认是STM32CubeMx5.4的问题,改为5.3版,FW还是1.8.0,代码就对了。

谢谢。      

出0入0汤圆

 楼主| 发表于 2019-12-4 09:22:30 | 显示全部楼层
请教各位,既然 STM32CubeMx 和现在的库老出问题,我们是否应该用回3.5的库?

出0入0汤圆

发表于 2019-12-4 10:37:03 | 显示全部楼层
目前来看,这个问题(版本迭代引入问题的隐患)会长期存在。
让Cube修改工程代码是不太稳妥的,如果是已发布的程序,生成出Bug很隐蔽就坑了。

出0入0汤圆

 楼主| 发表于 2019-12-4 11:00:04 | 显示全部楼层
谁有旧版本的CUBEMX 能发我一份吗?

出0入0汤圆

 楼主| 发表于 2019-12-4 11:01:06 | 显示全部楼层
不用了,ST官网有历史版本。

出0入0汤圆

发表于 2019-12-4 11:04:00 | 显示全部楼层
找到个链接,10 月份就有人用 CubeMX 5.4 版本时发现了这个问题
https://community.st.com/s/quest ... when-generate-codes

ST Employee 给了这么一个解决办法,可以在 Project Manager - Advanced Settings 中调整函数调用顺序:
Hello,
The initialization order can be changed directly within STM32CubeMX, just go in the "Project Settings" tab, "Advanced Setting: section.
In the table "Generated Function Calls", you can select each line and thanks to two buttons at the bottom of the window, you can increase or decrease the rank of each function call.


同时还有另一位 ST Employee 承认了这是个问题,会在下一版本中修正,只是这个下一版本出得也太慢了。
​Hello @User15718249183912214912 (Community Member)​ ,
Thanks for your feedback, this issue has already reported and it will be fixed in a next release.
Best Regards,
Khouloud

出0入0汤圆

发表于 2019-12-30 20:14:25 | 显示全部楼层
同事配置407ADC遇到了相同问题。我配置的407没有遇到这个问题。我们的cube版本是一样的。5.4.0

出0入169汤圆

发表于 2019-12-30 21:37:27 来自手机 | 显示全部楼层
lxvtag 发表于 2019-12-3 21:19
是有bug的,有次使用了timer4,结果define TIMX的地方直接是空的,换成别的timer就都正常。 ...

修正一下,我这个可能不是bug,貌似是因为有功能没配置完就点了生成代码造成。

出5入8汤圆

发表于 2020-1-7 10:34:07 | 显示全部楼层
谢谢 分享   

出0入0汤圆

发表于 2020-1-11 10:00:40 | 显示全部楼层
官方社区有这个问题的讨论,论坛有人给出过链接。是5.4.0的bug,有的出问题,有时不出问题。官方回复这个问题要下个版本修复。

出5入8汤圆

发表于 2020-1-13 18:19:10 | 显示全部楼层
这个bug与driver的添加顺序有关.

出0入0汤圆

发表于 2020-2-24 08:26:52 | 显示全部楼层
用这个软件确实方便,不过对芯片不熟悉的人同样不知道从何下手。简单的弄弄没有问题。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-28 18:08

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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