STM32新建工程

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查找函数参数

型号分类及缩写

新建工程步骤

工程架构

相关推荐
chao1898446 小时前
STM32 HAL库驱动AT24C02 EEPROM例程
stm32·单片机·嵌入式硬件
绵满8 小时前
Vector Quantization for Recommendation 笔记
推荐系统·基础知识
猫猫的小茶馆9 小时前
【Python】函数与模块化编程
linux·开发语言·arm开发·驱动开发·python·stm32
feifeigo1239 小时前
STM32矩阵键盘驱动(库函数版)实现
stm32·矩阵·计算机外设
嵌入式小站10 小时前
STM32 零基础可移植教程 05:按键消抖,为什么按一次会触发好几次
chrome·stm32·嵌入式硬件
拾知_H11 小时前
STM32/Delay延时函数编程思路
stm32·单片机·时钟·延时
2zcode12 小时前
基于STM32的智能扫地机器人设计与实现
stm32·嵌入式硬件·机器人
jllllyuz13 小时前
单相并网逆变器控制代码实现(STM32版)
stm32·单片机·嵌入式硬件
追兮兮15 小时前
告别手动搭建Keil工程!MCUQuickStart一键生成STM32/GD32工程模板,打开即编译
stm32·单片机·嵌入式硬件·gd32·keil5
山木嵌入式16 小时前
STM32串口不定长数据接收:超时解析法+DMA+空闲中断法(附完整代码)
stm32·单片机·串口·uart