一、按键消抖
由于按键内部使用的是机械式弹簧片,所以在按下和松开时会产生5~10ms的抖动,需要通过代码来进行消抖。
二、滤波电容
在电路中,如果见到一端接在电路中,一端接地的电容,则可以考虑它的作用为滤波电容,作用为保证电路的稳定,在分析电路时可以隐去。
三、sdint关键字
sdint关键字是用typedef定义的关键字,用来代替原C语言的关键字,这里只是换个叫法而已,含义其实都相同。
- int8_t 对应 char
- uint8_t 对应 unsigned char
- int16_t 对应 short
- uint16_t 对应 unsigned short
- int32_t 对应 int
- uint32_t 对应 unsigned int
- int64_t 对应 long long
- uint64_t 对应 unsigned long long
四、typedef
将一个变量类型换个名字,与C语言宏定义类似
typedef unsigned char uint8_t; //注意分号不能丢
uint8_t a = 0; //等价于unsigned char a = 0;
五、C语言结构体
数据打包,不同类型数据的组合。int a[10]是10个整型数的集合,但如果我们想要的集合既包括整型又包括其他类型数据,可以使用结构体使它们进行集合。
//定义
struct{char x;int y;float z;}c;
//引用
c.x = 'A';
c.y = 66;
c.z = 1.23;
我们也可以将结构体与typedef混合使用以降低代码复杂程度:
typedef struct{
char x;
int y;
float z;
}StructName_t
int main()
{
StructName_t c;
c.x = 'A';
c.y = 66;
c.z = 1.23;
return 0;
}
六、C语言枚举
定义一个取值受限的整形变量,用于限制变量的取值范围。
enum{MONDAY = 1,TUESDAY,WEDNESDAY}Week_t
Week_t = MONDAY;
week = MONDAY; //week赋值只能是“MONDAY、TUESDAY、WEDNESDAY”三个中的一个
这里,如果赋值的是别的其他东西,那么编译器会报警告。