STM32CubeMx:如何添加您自己的";“用户代码开始/结束”;部门?

STM32CubeMx:如何添加您自己的";“用户代码开始/结束”;部门?,stm32,stm32cubemx,Stm32,Stm32cubemx,我有一个项目,我需要在其中一个生成的C文件中添加几行。但是,我要添加更改的地方没有“用户代码开始/结束”部分。因此,每当我重新生成代码时,更改都会被覆盖。我尝试添加我自己的用户代码部分,如下所示,但即使这样也被覆盖了。看起来,CubeMX正在寻找一组预定义的用户代码块,并覆盖其他所有内容 /* USER CODE BEGIN 8 */ /* USER CODE END 8 */ 我希望能够定义自己的用户代码块,以便在CubeMX尚未提供用户代码块的地方编写自定义代码。CubeMX不支持添加自

我有一个项目,我需要在其中一个生成的C文件中添加几行。但是,我要添加更改的地方没有“用户代码开始/结束”部分。因此,每当我重新生成代码时,更改都会被覆盖。我尝试添加我自己的用户代码部分,如下所示,但即使这样也被覆盖了。看起来,CubeMX正在寻找一组预定义的用户代码块,并覆盖其他所有内容

/* USER CODE BEGIN 8 */

/* USER CODE END 8 */

我希望能够定义自己的用户代码块,以便在CubeMX尚未提供用户代码块的地方编写自定义代码。

CubeMX不支持添加自定义用户代码节

请参阅此支持帖子:


我很难相信代码中存在一个位置,而可用的用户代码开始/结束部分并不存在。你能发布整个文件并指出你想要添加自定义文件的确切位置吗?我看过很多STM32CubeMX生成的代码,但从未找到一个我想添加的代码块不合适的地方。也许我错了(可能是:),但这对我来说似乎很奇怪。我想使用UART空闲中断。CubeMX生成的代码中已经定义了ISR。此ISR没有处理UART空闲状态的代码。在CubemxUI中也没有任何选项来生成它。是的,我认为你错了。我在STM32CubeMX中创建了一个新项目,然后在异步模式下启用USART1,转到其NVIC设置,并选中该框以启用其全局中断。然后我生成了代码,在“Src/stm32f7xx_it.c”中断文件中有一个名为
void USART1\u IRQHandler(void)
的处理程序ISR。它有两个独立的用户代码部分,分别标记为
/*用户代码开始使用RT1\u IRQn 0*/
/*用户代码开始使用RT1\u IRQn 1*/
。在这些部分中,您可以读取Idle事件标志,并根据需要进行处理。如果你愿意,我可以回答你。@Gabriels Staples你的STM32CubeMX和固件包的版本是什么?也许他们在最新版本中添加了它,我降级到了以前的版本,因为我不久前安装的最新版本生成了不稳定的代码。无论如何,这个问题一直存在,因为UART IRQ只是一个例子,用户可能会在许多其他地方插入自己的代码。我不记得版本,但我大约一年前在STM32CubeMX的任何版本上验证了这一点,固件包是当时的最新版本,就在前几天,我用STM32F7固件包1.14.0在STM32CubeMX 5.0.1中验证了它,以及用STM32F7固件包1.15.0在STM32CubeIDE 1.0.0(其中包含嵌入的STM32CubeMX 5.2.0)中验证了它。我使用的板是NucleoF767。我不认为这是一个新功能。在过去1~1.5年的使用中,我从未发现或听说过一个不存在所需用户代码开始/结束部分的情况。