你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
安 发表于 2017-7-7 19:34 理论是可以的,比如用一个计算公式取地址。如下代码: #define gpiox(x) ((GPIOB_BASE-GPIOA_BASE)*(X-0X0A ...
http://www.cnblogs.com/3me-linux/p/5825940.html
试下这个连接符,不知道行不行。
#define gpiox(x) ((GPIOB_BASE-GPIOA_BASE)*(X-0X0A)+GPIOA_BASE)
或者如下:
#define gpiox(x) GPIO##x
这些都是想法,楼主可以根据实际情况来选择使用。
.....
#define PIN9 9
.....
#define pinSDA PIN9
.....
#define SDA0_OUT PORTB_Out(pinSDA)
#define SDA0_IN PORTB_In(pinSDA)
好像编译器不支持把一个宏作为另一个宏的参数呀
.c
GPIO_Init(GPIOX(LED_PORT), &GPIO_InitStructure);
.h
#define LED_PIN 13
#define LED_PORT C
#define GPIOX(x) GPIO##x
会报错
#define gpiox(x) GPIO##x
这个测试了,x不能是另一个宏,这样没有变得简便
#define STD_GPIOx(x) (GPIOA_BASE + (GPIOB_BASE - GPIOA_BASE)*(x))