[STM32L0] IAR编译报错 expected an identifier

[复制链接]
5107|4
 楼主| Larm1 发表于 2017-7-6 20:39 | 显示全部楼层 |阅读模式
本帖最后由 Larm1 于 2017-7-6 20:41 编辑

      今天移植一个STM32F103的程序到STM32L051k6上,遇到一个奇葩的问题:
       err.png
      而被报错的文件在移植之前编译时没有问题的如下:
       dd.png
      而被报错的文件在移植之前编译时没有问题的如下:       ij1.png
      只要有这个文件,这个C文件就编译报上图中Pe040的错误。
      最后将该红色圈内的头文件置顶后,编译OK 了。

      具体原因搞不懂,感觉很玄乎。

      不知道哪位大神可以释疑?
戈卫东 发表于 2017-7-6 21:41 | 显示全部楼层
估计是头文件版本问题。
643757107 发表于 2017-7-7 21:01 | 显示全部楼层
换成Keil for ARM试试。
wahahaheihei 发表于 2017-7-9 15:37 | 显示全部楼层
原因是编译是按顺序的,你没有先调用芯片头文件,那么其他的头文件就找不到定义的宏。。每个变量只会向前搜索宏定义,不向后,向后的变量还可以重新定义。
wahahaheihei 发表于 2017-7-9 15:38 | 显示全部楼层
这次我讲清楚了吧,宏变量是根据引用的顺序确定的,因此最重要的芯片寄存器宏定义需要在最前面。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

53

主题

389

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部