版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tomlucky1024/article/details/84262129
1位操作
运算符 | 含义 |
---|---|
& | 按位与 |
| | 按位或 |
^ | 按位异或 |
~ | 取反 |
<< | 左移 |
>> | 右移 |
2define宏定义
格式:
#define 标识符 值
#define SYSCLK_FREQ_72MHz 72000000
3条件编译 ifdef/ifndef
#ifdef 标识符
程序段1
#else
程序段2
#endif
4extern变量申明
extern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他的模块中寻找定义。
NOTE:可以用extern申明多次,但是只能定义一次
5typedef 类型别名
定义一种类型的别名
,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
typedef unsigned __int64 unint64_t;
6结构体:构造类型
6.1定义
Struct 结构体名{
成员列表1;
成员列表2;
。。。
}变量名列表
在结构体申明的时候可以定义变量,也可以申明之后定义,方法是:Struct 结构体名字 结构体变量列表
6.2作用
同一个类型 =》 数组
不同类型 =》结构体
结构体可扩展性强
7关键字: static
Static 放在函数前,说明函数只是本文件用
Static申明的局部变量,存储在静态存储区
他在函数调用结束后,不会被释放。他的值会一直保留下来
所以可以说,static申明的局部变量,具有记忆功能
8寄存器地址名称映射分析
51中映射
sfr P0=0x80;//P0映射到地址0x80
P0=0x00;//往寄存器地址0x80赋值0x00
stm32
GPIOA->ODR=0x0000000;