STM32自学周记(一)
转眼来到大二下学期,回想过去的一年半,浑浑噩噩,除了必修的课程之外没有获得什么知识。决定从本学期开始,逐步学习STM32单片机以及其他与专业有关的技能知识。
第一天学习的时候在网上到处找资料,看stm32的介绍,看stm32的学习方法,制定计划。学习单片机一定要多动手,代码只看不动手敲一敲什么都记不住,所以当天晚上联系了同学一起买了块迷你开发板。
在开发板邮回来之前以学习理论知识为主,首先是c语言的学习。从头开始学我觉得是来不及的,介于完整的学过c++,便学习32常用的c语言。
一、位操作
&(按位与): 1&1 = 1 1&0 = 0 0&1 = 0 0&0 = 0
~(取反): ~1 = 0 ~0 = 1
|(按位或):1|1 = 1 0|1 = 1 1|0 = 1 0|0 = 0
^(按位异或): 1^1 = 0 0^1 = 1 1^0 = 1 0^0 = 0
<<(左移):将一个数的各位左移n位,低位补0。 00001100 << 2 = 00110000
>>(右移):将一个数的各位右移n位,高位补0。 00001100 >> 2 = 00000011
二、define 宏定义
格式:#define 标识符 字符串
三、 ifdef 条件编译
格式:
#ifdef 标识符
程序段 1
#else
程序段 2
#endif
在编写头文件时会用到,目的是为了避免头文件被重复定义。
四、 extern 变量申明
用法如下
Main.c
u8 id;
main()
{
id=1;
printf(“d%”,id);//id=1
test();
printf(“d%”,id);//id=2
}
在该文件中,main已经定义了id,但是test未定义id,这时就用到extern进行变量申明,如下:
extern u8 id;
void test(void)
{