遇到的问题
新建工程文件编译出错,尝试了各种办法,因为原理上是没有问题的。看了两种芯片的说明。最后发现是由于Keil的编译器与CMSIS文件的匹配问题。
解决办法
这个bug我问了很多人,但是他们要不然就是说我添加HAL库文件添加少了,要不然就是说我Keil安装的问题。但是我都不相信,然后我觉得还是自己对HAL的文件结构不太清楚。我对照例程里,和自己新建的文件一点一点看。
发现两个工程中的HAL库有些头文件有的宏定义的执行不一样。
我又看了两个工程编译时的第一行
*** Using Compiler ‘V5.06 update 6 (build 750)’, folder: ‘D:\Keil\Keil5\ARM\ARMCC\Bin’
*** Using Compiler ‘V6.14’, folder: 'D:\Keil\Keil5\ARM\ARMCLANG\Bin’编译错误对应的编译器
原来有些代码使用了类似 #if defined (GNUC) 来适应不同的编译器。所以我新建工程时使用的是CompilerV6,没有适应所添加的文件。应该使用CompilerV5。
总结起来的收获就是原来代码里还能添加对不同编译器的支持和适应。