stm32新建工程流程
1:打开keil5选择新建工
2:在弹出的文件框中新建文件夹
3:在新建文件夹中命名保存
4:选择芯片
5:选择库函数头文件
6:选择cmsis下的core;device下的statup;device下stdperiph下的fawmework(构架 包含多个头文件) ,rcc ,gpio
7新建mian.c文件
8.保存,在弹出的文件框中新建user并保存
9:打开target(英文意思:目的,靶子,可以理解理解为我们这个工程) 选择上部的output 勾选hex
10:选择上部的c++ 添加include文字: USE_STDPERIPH_DRIVER(意思是使用peripherals(外围设备)驱动,在stm32f10x.h103行有说明)
11:添加include path (user)
12:选择上方debug 选择你使的下载器型号
13;选择三个正方形编辑组 添加文件
Led灯驱动流程
1:添加#include"stm32f10x.h" 后可以使用已经添加进来的库文件
2:设置系统时钟SystemInit();
3:gpio时钟使能,rcc头文件里有头文件
4:gpio初始化voidGPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)
(GPIO_TypeDef* GPIOx表示在新建一个结构体指针形参,GPIOx个变量,在GPIO_Init()内不表示一个变量,在此处GPIO_Init()外部名字没有意义,会重新填如一个实参)
此处包含两个结构体指针,第一个在GPIO_Init()内部初始化赋值,填写结构体指针就可,第二个在GPIO_Init()外部初始化赋值,即在此处对结构体成员赋值后,再把赋值好的结构体强制转化为结构指针后填入。Led灯选用推挽输出out_pp(单片机控制两个cmos管的控制端,实现输出0和1,输出能力强,通过单片机电流小)原理图上led的箭头就是led电流流通的方向。
后记:关于结构体初始化化,需要先将结构体实例化,在函数追前面写入结构体+新的结构体然后用新的结构体名字.结构体成员=xxx;最后将 &新的结构体,找到该结构体的指针,然后填如引用的函数参数里。
关于assert_param是一个可要可不要的函数,用了后可以用它方便的查看可以填入指针选项(此对编译没影响)还可一检测当填入的参数不在列表里会报错。