打印
[STM32L0]

IAR编译报错 expected an identifier

[复制链接]
4503|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Larm1|  楼主 | 2017-7-6 20:39 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Larm1 于 2017-7-6 20:41 编辑

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

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

      不知道哪位大神可以释疑?
沙发
戈卫东| | 2017-7-6 21:41 | 只看该作者
估计是头文件版本问题。

使用特权

评论回复
板凳
643757107| | 2017-7-7 21:01 | 只看该作者
换成Keil for ARM试试。

使用特权

评论回复
地板
wahahaheihei| | 2017-7-9 15:37 | 只看该作者
原因是编译是按顺序的,你没有先调用芯片头文件,那么其他的头文件就找不到定义的宏。。每个变量只会向前搜索宏定义,不向后,向后的变量还可以重新定义。

使用特权

评论回复
5
wahahaheihei| | 2017-7-9 15:38 | 只看该作者
这次我讲清楚了吧,宏变量是根据引用的顺序确定的,因此最重要的芯片寄存器宏定义需要在最前面。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

53

主题

389

帖子

0

粉丝