提示一个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条回答
wudicgi
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

一周热门 更多>