一、C语言复习
1.1 位操作
在单片机中的使用:
- 不改变其他位的值的状况下,对某几个位进行设值
- 移位操作提高代码的可读性。
- ~ 取反操作使用技巧
1.2 define 宏定义
#define SYSCLK_FREQ_72MHz 72000000
定义标识符 SYSCLK_FREQ_72MHz 的值为 72000000。
1.3 ifdef 条件编译
当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。
条件编译命令最常见的形式为:
1.4 extern 变量申明
extern表示变量或者函数的定义在别的文件中,提示编
译器遇到此变量和函数时在其他模块中寻找其定义。
如:extern u16 USART_RX_STA;
申明 USART_RX_STA 变量在其他文件中已经定义了,在这里要使用到
1.5 typedef 类型别名
1.6 结构体
二、MDK中寄存器地址名称映射分析
MDK 采用的方式是通过结构体来将寄存器组织在一起
GPIOA 的 7 个寄存器都是 32 位的,所以每个寄存器占有 4个地址,一共占用 28 个地址,地址偏移范围为(000h~01Bh)。