我正在使用Visual Studio 2013编写AVR的代码。我一直在关注本教程。
在编写代码的同时,我注意到Visual Studio继续强调诸如DDRB
或的下划线,PORTB
并且不断出现诸如的错误Error: identifier "PORTB" is undefined
,但是,程序可以正确地编译。
有趣的是,在按下alt-F12视觉的发现,他们定义了许多文件。
您的Makefile运行带有选项-mmcu = YOURCHIP的编译器。这隐式定义了与您的芯片相对应的宏。例如,对于atmega32u4,宏为AVR_ATmega32U4。Intellisense在编译器外部运行,因此它不知道此宏以及在解析标准avr标头时-就像avr/io.h
它跳过了特定MCU的标头文件的正确包含。就像这样:
#elif defined (__AVR_ATmega32U4__)
# include <avr/iom32u4.h>
因此,如果要对这些标头中定义的内容提供智能支持,则可能需要在源顶部定义该宏,如下所示:
#define __AVR_ATmega32U4__
#include <avr/io.h>
int main() {
char a = PORTB;
}
您可能会在此页面的中间找到与哪个MCU对应的宏
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句