willl 发表于 2021-11-8 16:12:24

关于cubeMX生成代码的一点小小疑惑

本帖最后由 willl 于 2021-11-8 16:13 编辑

用cubeMX生成的代码,只能写在注释内,否则再次生成代码的时候,会将注释外的东西全部删掉。但是cubeMX生成的代码中,main函数的loop循环里这个注释为什么分别在括号的上面和下面,看起来就很怪

/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */

在我理解中,应该是这样的
/* Infinite loop */
while (1)
{
    /* USER CODE BEGIN WHILE */不知道是他设计的有问题,还是我没有考虑到什么情况。

willl 发表于 2021-11-8 16:14:51

/* Infinite loop */
while (1)
{
    /* USER CODE BEGIN WHILE */

    /* USER CODE END WHILE */
}
/* USER CODE BEGIN 3 */

/* USER CODE END 3 */

hqgboy 发表于 2021-11-8 16:41:45

按楼主定义,WHILE(1)和大括号都删除了。

willl 发表于 2021-11-8 17:18:54

hqgboy 发表于 2021-11-8 16:41
按楼主定义,WHILE(1)和大括号都删除了。

一楼发的时候点错了,在二楼重发了一下{:16:}

wklhwkl 发表于 2021-11-9 08:34:53

只要写在BEGIN下面。再次生成工程时 就不会被删除。

zbianbiaos 发表于 2021-11-9 09:53:26

cubemx生成的代码只拿来复制粘贴

浪里个白条 发表于 2021-11-9 14:24:04

我猜是while算是usercode,你可以把括号里1改成别的,或者是改成for(;;),如果不这样框起来,下次生成就变回while(1)

willl 发表于 2021-11-9 15:22:05

浪里个白条 发表于 2021-11-9 14:24
我猜是while算是usercode,你可以把括号里1改成别的,或者是改成for(;;),如果不这样框起来,下次生成就变 ...

明白了,一语惊醒梦中人。框起来的意图确实是为了让用户可以修改或删除这个while语句。

phy1335 发表于 2024-4-19 14:46:09

windows搜索文件“tpl_main_c.ftl”,用文本编辑器打开,找到1037行左右(cubemx版本6.10),就可以修改生成的代码了

我在后面这里加了一个"#n",MX就会后面添加一个空行

效果

搜索ftl语法添加更多内容

eric2013 发表于 2024-4-20 08:32:44

phy1335 发表于 2024-4-19 14:46
windows搜索文件“tpl_main_c.ftl”,用文本编辑器打开,找到1037行左右(cubemx版本6.10),就可以修改生 ...

谢谢分享,好办法。
页: [1]
查看完整版本: 关于cubeMX生成代码的一点小小疑惑