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

2019-12-08 14:41发布

最新的 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();

回头看了之前的工程,生成的代码是后面这种啊。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
22条回答
styleno1
1楼-- · 2019-12-11 07:45
目前来看,这个问题(版本迭代引入问题的隐患)会长期存在。
让Cube修改工程代码是不太稳妥的,如果是已发布的程序,生成出Bug很隐蔽就坑了。
yaoyyie2003
2楼-- · 2019-12-11 13:31
谁有旧版本的CUBEMX 能发我一份吗?
yaoyyie2003
3楼-- · 2019-12-11 19:26
 精彩回答 2  元偷偷看……
wudicgi
4楼-- · 2019-12-11 22:14
找到个链接,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

一周热门 更多>