【发布时间】:2015-01-15 19:20:14
【问题描述】:
这些 C 宏扩展成什么?
#define PERIPH_BASE ((uint32_t)0x40000000)
#define AHB2PERIPH_BASE (PERIPH_BASE + 0x08000000)
#define GPIOA_BASE (AHB2PERIPH_BASE + 0x0000)
#define GPIOB_BASE (AHB2PERIPH_BASE + 0x0400)
#define BLINK_GPIOx(_N) (GPIO_TypeDef *)(GPIO_BASE +(GPIOB_BASE-GPIOA_BASE)*(_N)))
#define BLINK_PORT_NUMBER(4)
对此的调用是
GPIO_SetBits(BLINK_GPIOx(BLINK_PORT_NUMBER), BLINK_PIN_MASK(8));
【问题讨论】:
-
这是简单的文本替换,还是我在这里遗漏了一些微妙之处?
-
你可以对文件进行预处理,看看会发生什么......
-
错别字或缺失的行数过多。您可以尝试运行 g++ INPUT_FILE | grep GPIO_SetBits
-
@lonewasp:
g++ INPUT_FILE不会向标准输出写入任何内容。 -
@KeithThompson 是的,你说得对,应该是 cpp INPUT_FILE(仅预处理器调用)