你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

修改cubemx,重新生成工程,改变的原有添加的代码。

[复制链接]
yymzx66 提问时间:2018-7-5 09:10 /
cubemx我最近才开始使用。
       现在碰到这样一个问题:之前已经有人使用cubemx生成了一个工程,并且已经完成了。但是最近需要增加新功能,外设比原先增加了。我重新修改了cubemx文件,重新生成了工程,原有工程里面自己的代码有些被删除了,但是无法知道哪里被删除了。
       所以,在此想请教一下解决方法。希望能重新修改了cubemx文件后,只进行添加或仅修改自带生成的代码部分。不要修改我自己编写的部分。
      又或者修改了cubemx文件后,重新生成的工程能对修改的地方进行一个明显的提示。


      不知道我的想法能否实现, 希望各位能够提供自己宝贵的经验。谢谢!
收藏 评论14 发布时间:2018-7-5 09:10

举报

14个回答
jjbboox 回答时间:2018-7-5 10:41:56
本帖最后由 jjbboox 于 2018-7-5 10:44 编辑

如果原来的代码是按照cubemx的规范来写的话,按下面的设置就可以保留所有用户代码。
1111.png

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

电子星辰 回答时间:2018-7-5 09:22:55
例如像
  /* USER CODE BEGIN Init */

  /* USER CODE END Init */
这里面的,就不会被修改。或者你可以自己新建文件

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

随风飘扬 回答时间:2018-7-5 09:15:44
cubems生成的代码中,会添加一些注释,告诉你在哪里添加自己的代码不会被删除

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

Bowen 回答时间:2018-7-5 09:26:17
cubemx生成的代码英文注释中,在USER CODE BEGIN和USER CODE END之间添加你自己的代码,重新生成工程,就不会被抹掉你自己的代码

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

jakecumt 回答时间:2018-7-5 09:32:17
用一个比较工具,比较一下两个工程的差异,适当的增减应该能解决你的问题吧

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

xiajintaord 回答时间:2018-7-5 09:39:51
要养成良好的习惯

使用这种自动生代码成工具,建议将自己的代码放在自己建立的文件里面,与自动生成的代码分隔开,只留下调用接口或者使注册回调函数的方法,尽量降低代码的耦合度;

等你的工程越来越大,需求改动越来越多的时候,强耦合的代码再加上自动生成工具会降低你的工作效率,苦不堪言。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

CC4 回答时间:2018-7-5 09:42:36
按照CubeMX的规范放置代码,就不会有问题。另外,可以把你的代码include 进去。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

wolfgang 回答时间:2018-7-5 10:34:03
给你介绍一个良好的习惯,
1、用cubemx生成工程,不要直接使用;
2、代码上传本地SVN;
3、用编译工具新生成工具,然后把SVN上Cubemx的文件移植过来;
4、本地代码及时up到SVN上。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

蓝夜 回答时间:2018-7-5 10:42:59
养成及时备份的习惯,
代码要写在USER CODE  定义的区域内,

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

yymzx66 回答时间:2018-7-5 14:16:19
电子星辰 发表于 2018-7-5 09:22
例如像
  /* USER CODE BEGIN Init */

如果我自己添加这段注释,是不是也不会被修改。我先去试试。
yymzx66 回答时间:2018-7-5 14:18:42
xiajintaord 发表于 2018-7-5 09:39
要养成良好的习惯

使用这种自动生代码成工具,建议将自己的代码放在自己建立的文件里面,与自动生成的代码 ...

问题这个工程是别人写的,写的又不是很规范,现在修改起来好累啊
yymzx66 回答时间:2018-7-5 14:19:13
jjbboox 发表于 2018-7-5 10:41
如果原来的代码是按照cubemx的规范来写的话,按下面的设置就可以保留所有用户代码。
...

好的,我试下
xiajintaord 回答时间:2018-7-5 14:22:05
yymzx66 发表于 2018-7-5 14:16
如果我自己添加这段注释,是不是也不会被修改。我先去试试。

那肯定是不行啊哈哈
feiante 回答时间:2018-7-5 17:21:40
如果不是自己单独建立.c和.h文件,直接采用cubemx自动生成的文件,那么就把自己的程序写在
/* USER CODE BEGIN Init */

  /* USER CODE END Init */
之间,才不会被系统删除。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版