发布网友 发布时间:2022-05-11 01:03
共2个回答
热心网友 时间:2023-11-22 09:16
define一般像下面这样使用。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换。
#define 宏名 字符串
如果定义了#define M (a+b),那么在编写源程序时,所有的M在预处理时,都会被(a+b)表达式所置换。
在stm32f10x.h文件中定义了
#define PERIPH_BASE ((uint32_t)0x40000000)
#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)
#define GPIOD_BASE (APB2PERIPH_BASE + 0x1400)
那么在编译前GPIOD_BASE就是((0x40000000+0x10000)+0x1400),也就是0x40011400。
在stm32f103的数据手册register map一节中,可以看下Port D的基地址正是0x40011400。
热心网友 时间:2023-11-22 09:16
恩 这些在单片机开发中很多。这是定义一个宏,名字为GPIOD_BASE,它表示APB2PERIPH_BASE + 0x1400