使用STM32CubeMx的同学都知道,它的版本更新非常快,目前(2019.4.30)已经是5.2.0版本了,半年前还只是4.27.0版本。当你更新到新的版本后,你打开用旧版本创建的工程时,总是不那么兼容,出现一些莫名其妙的错误。
我的情况是:
我的原工程是使用4.27.0版本的STM32CubeMx,以及1.21.0的HAL库代码包创建的;
于是我把STM32CubeMx更新到了5.2.0版本,同时HAL库代码包也更新到了1.24.1版本(1.21.0版本的删掉了);
1.当我使用新的CubeMx打开那个旧工程时,首先会提示如下图:
点击中间的 “移动” 选项即可;
2.成功迁移项目到新版本后,点击重新生成代码,然后编译会出现各种重复定义的错误如下图:
Error: L6200E: Symbol SystemCoreClock multiply defined (by system_stm32f4xx_1.o and system_stm32f4xx.o).
Error: L6200E: Symbol AHBPrescTable multiply defined (by system_stm32f4xx_1.o and system_stm32f4xx.o).
Error: L6200E: Symbol APBPrescTable multiply defined (by system_stm32f4xx_1.o and system_stm32f4xx.o).
rror: L6200E: Symbol SVC_Handler multiply defined (by stm32f4xx_it.o and irq_cm4f.o).
|