赞
踩
一、C语言相关知识
1.位操作
"&"按位与:某对应位置值都为 1,该位的结果为1;否则,该位结果为 0。[1010&1001=1000]
"|"按位或:某对应位置值只要有一个为 1,该位的结果为1;否则,该位结果为 0。[1010|1001=1011]
“~” 取反:某位值为1,该位结果为0;某位值为0,该位结果为1。[~1010=0101]
"^"按位异或:某对应位上值相同时,该位的结果为0;否则,该位结果为 1。[1010^0110=1100]
"<<"左移:将某数的全部位左移若干位。[1011<<2=1100]
">>"左移:将某数的全部位右移若干位。[1011>>2=0010]
2.#define宏定义
#ifdef 标识符 //if define 同理 ifndef = if not define
程序段1
#else
程序段2
#endif
//如果定义了某个关键字,则执行程序1,如果没有定义,则执行程序2。
3.其他
extern 申明变量
变量只能定义一次,但可以多次声明。
typedef 类型别名
定义一种类型的别名,可以用作同时声明指针型的多个对象。
struct 结构体
可以将无序变量构造类型,使程序变得有序。
static 静态变量
申明局部变量,储存在静态存储区,函数调用结束后,值不会被释放,具有记忆功能。
二、寄存器地址名称映射分析
#define PERIPH_BASE ((uint32_t)0x40000000)
//外设基地址
#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)
//APB2基地址
#define GPIOA_BASE (APB2PERIPH_BASE + 0x0800)
//GPIOA基地址
#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)
//再去寻找对应端口偏移量,如下图
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。