1、XXXX_Init()初始化函数 在main()的前面会用到
2、
H(头)文件的功能:申明(宏定义)
C文件的功能:定义(函数定义、变量定义)
#include" .h"作用:编译器进行编译之前(即预编译),把.h那个文件的内容,完完整整地、一字不差地包含到当前的文件中来(相当于复制)。
C文件和H文件都是C语言的源代码,因为C语言语法对于变量和函数不能重复定义(一次定义的原则),所以当C文件和H文件中的源代码有重复内容时(重复包含),编译出错。
解决重复包含(重定义)的问题:.H中加入#ifndef`__ABC_H_ #define__ABC_H_ #endif原理:当编译器遇到第2(3....)遍同样的头文件时,因为已经编译了一次,在后面再遇到的时候,编译器会自动忽略。
3、头文件书写格式:
#ifndef__ABC_H
#define__ABC_H
//以上是为了防止头文件被多次包含
//以下是宏定义
// #include" .h"
#define MAX 100
#define MIN 0
#endif
4、Init //abbr表示缩写 init是 initiation(开始) 的缩写
5、结构体类型别名定义
typedef struct
{
.....
.....
}结构体类型别名; 但类型别名变量取值在struct{ }范围内
6、periph //abbr peripheral 外围的
7、<stdint.h> //standard int// 定义了一些整型
intN_t 长度为N位的整型数 N=8、16、32
uintN_t 长度为N位的无符号整型数
8、typedef 定义了一个intN_t uintN_t数据类型可跨平台使用; (和第6点比较,可以总结typedef的用法,其实typedef就是定义类型别名)
例 typedef unsigned short int uint16_t; 定义了uint16_t表示无符号整型数据类型。
9、typedef num{ } ABC; 定义枚举型数据类型;谭浩强 P323;
10、volatile 是类型修饰符 (修饰类型的)
#define __IO volatile
__IO uint32_t CRH;
这样 uint32_t 这个变量就可以多次并行使用
11、configuration 配置
12、assert_param( 函数(参数) ) 参数必须是函数上方 宏定义的 【判断入口参数的有效性】
13、ASCII码 American Standard Code for Information Interchange
字母 符号等 用二进制表示 (编码)
一个ASCII码必须用8位二进制数来表示 低7位表示字符 最高位(b7)用作奇偶校验位