keil5 编译通过,可main文件却显示错误
如图所示,使用demo模板,编译通过后,显示没有错误 没有警告。但是打开main 文件的时候 却显示一个LED 翻转的宏是没有声明GPIO。
可以go to define 却都是正确的~~~ 是不是路径没有设置对?
关闭工程,重新打开,如果“红叉”还在的话,那就是真的没有定义或没有声明“GPIO_PIN_4”。
你的LED_TOGGLE反转在什么地方宏定义的?
如果不是在main.c中宏定义,而是在别的文件中宏定义,在宏定义的文件中添加了包含GPIO_PIN_4的头文件,而main.c中没有包含GPIO_PIN_4的头文件。这种情况,你只要把包含GPIO_PIN_4的头文件添加include进main.c就可以了。不过还是建议LED_TOGGLE定义成函数,而不要搞成宏定义。如果定义成函数,则函数内部使用的GPIO_PIN_4就与main.c没关系了。 toofree 发表于 2018-3-6 11:41
关闭工程,重新打开,如果“红叉”还在的话,那就是真的没有定义或没有声明“GPIO_PIN_4”。
你的LED_TOGGL ...
谢谢 你, 应该在 bsp.h 中的 include 一下 库 文件关于gpio的 定义文件(即#include "stm32f0xx_gpio.h")
另外 keil 5好像有点延迟 有些错误 要关掉页面,打开之后 才会更新过来 su-409464 发表于 2018-3-6 11:59
谢谢 你, 应该在 bsp.h 中的 include 一下 库 文件关于gpio的 定义文件(即#include "stm32f0xx_gpio. ...
是的,关于你说的“Keil延迟”,习惯就好了。从我接触keil,这个问题就存在,这个咱用户无法干预,只能适应。 个人习惯上关闭动态语法检查,否侧一堆莫名其妙的红色叉叉太让人蛋疼了!:lol:lol
lmm2014 发表于 2018-3-6 12:48
个人习惯上关闭动态语法检查,否侧一堆莫名其妙的红色叉叉太让人蛋疼了!
...
这个更多的是 Keil 动态语法检查的 bug。只要编译能过就没什么大问题。 keil的语法实时提示就是这个样子的啦,以编译提示为主就好了!!! 这个是KEIL的问题,我也经常遇到。
只要编译能过,就证明没有问题了。
如果有强迫症的话,
只要在有错误提示的那一行,
添加一个空格,保存,再删除空格,保存,
就可以正常了。 keil很早就存在的问题,估计以后很长时间内让然会存在。keil的智能提示或者说语法检查会滞后,慢慢习惯就好了。或者像楼上说的改动一下重新编译也可以。 这个问题很常见,就是你编辑一行到半路的时候,Keil就给你报错,不过能编译通过的话就OK了
通常我消除这个X的方法是在该行上面敲一空行,一般没错的话×会消失。
页:
[1]