例如:#define GPIO_PORTA_DATA_R (*((volatile uint32_t*)0x400043FC))
define GPIO_PORTA_DATA_R是宏名,0x400043FC是寄存器地址,通过这个宏定义,我们在程序代码时就可以直接用 GPIO_PORTA_DATA_R来表示0x400043FC这个寄存器
为了方便记忆,红的名字采用了讯压力命名法
GPIO表示寄存器所在的外设功能模块类型
PORTA表示寄存器所在的部分(除GPIO外其他模块没有这一项)
DATA表示这个寄存器本身的功能(即他是数据寄存器)
R表示这个宏名表示的是寄存器(有些宏不是用来定义寄存器的,不以_R结尾)也就是说寄存器的宏定义按照右侧规则来定,其中括号表示有些功能模块的宏名没有这部分
功能模块类型名_(所在部分名)_寄存器本身的功能_R
xyz549040622:
原文档的示例图片下: