STM32使用前须知
因为STM32单片机种类太多了,使用时需要支持包
点击这里可进入官网,下载支持包
标准库添加及其编译器的准备工作
新建工程后,选择STM32F103C8,但并不能直接使用
STM32必要文件
STM32启动文件

STM32外设寄存器和配置时钟文件

内核寄存器的描述文件

因为STM32是内核和外围设备组成的,但是内核寄存器和外围设备的描述文件不是一起的,所以要增加一次内核寄存器的描述文件
在工程目录添加启动文件
将STM32必要文件添加到工程目录里,创建一个新文件,命名为Start

添加这个文件夹的头文件路径,否则无法找到



编译后,通过ST-LINK下载到STM32单片机上

在工程目录里添加库函数
在工程目录里新建文件夹,命名为Library

STM32库函数文件

在工程目录添加库函数辅助文件
库函数不能直接使用,还需添加文件
这三个文件添加到User文件(主函数在里面)里面

编译器准备工作
将所有的文件添加工程还不够,还需要一个条件编译



最后还需要添加Stare、User、Library文件夹的路径



点灯
在添加完标准标准库,将文件加入工程后,就可以右键打开函数的定义,根据注释写入参数
第一步
RCC开启GPIO的时钟,右键跳转看参数定义

第二步
使用GPIO_Init函数初始化GPIO

void GPIO_DeInit 调用这个函数之后,所指定的GPIO外设就会被复位
void GPIO_AFIODeInit 调用这个函数之后,可以复位AFIO外设
void GPIO_Init 这个函数作用是用结构体的参数来初始化GPIO口,需要先定义一个结构体变量,然后再给结构体赋值,最后调用这个函数,这个函数就会自动读取结构体的值,然后自动把外设的各个参数配置好,一般初始化外设都是使用这个Init函数完成
void GPIO_StructInit 这个函数可以把结构体变量赋一个默认值
GPIO读取函数
uint8_t GPIO_ReadInputDataBit
uint16_t GPIO_ReadInputData
uint8_t GPIO_ReadOutputDataBit
uint16_t GPIO_ReadOutputData
GPIO写入函数
void GPIO_SetBits
void GPIO_ResetBits
void GPIO_WriteBit
void GPIO_Write
第三步
使用输出或输入的函数控制GPIO口
最终的代码
cs
#include "stm32f10x.h" // Device header
int main(void)
{
/*开启时钟*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //开启GPIOC的时钟
//使用各个外设前必须开启时钟,否则对外设的操作无效
/*GPIO初始化*/
GPIO_InitTypeDef GPIO_InitStructure; //定义结构体变量
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //GPIO模式,赋值为推挽输出模式
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; //GPIO引脚,赋值为第13号引脚
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //GPIO速度,赋值为50MHz
GPIO_Init(GPIOC, &GPIO_InitStructure); //将赋值后的构体变量传递给GPIO_Init函数
//函数内部会自动根据结构体的参数配置相应寄存器
//实现GPIOC的初始化
/*设置GPIO引脚的高低电平*/
/*若不设置GPIO引脚的电平,则在GPIO初始化为推挽输出后,指定引脚默认输出低电平*/
GPIO_SetBits(GPIOC, GPIO_Pin_13); //将PC13引脚设置为高电平
//GPIO_ResetBits(GPIOC, GPIO_Pin_13); //将PC13引脚设置为低电平
while (1)
{
}
}
头文件找到函数->右键跳转到定义->Ctrl+F查找函数参数
型号分类及缩写

新建工程步骤

工程架构
