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

型号分类及缩写

新建工程步骤

工程架构

相关推荐
@good_good_study38 分钟前
STM32 ADC多通道采样实验
stm32·单片机·嵌入式硬件
Darken031 小时前
什么是“位带”?;在STM32单片机中有什么作用?
stm32·单片机·嵌入式硬件
Triumph++3 小时前
STM32工程(Kile5)生成Bin文件
stm32·嵌入式硬件
强化学习与机器人控制仿真5 小时前
Holosoma 开源人形机器人强化学习训练部署框架
人工智能·stm32·神经网络·机器人·强化学习·具身智能·人形机器人
d111111111d5 小时前
在stm32F103C8T6中,Thumb指令是什么?有什么作用?可以干什么?
笔记·stm32·单片机·嵌入式硬件·学习
DIY机器人工房5 小时前
简单理解:ESP32S3 开发板中通过什么控制舵机
stm32·单片机·嵌入式硬件·mcp·小智ai·diy机器人工房
victorwjw5 小时前
STM32 ISP下载原理
stm32·嵌入式硬件
沐欣工作室_lvyiyi5 小时前
基于单片机的智能宠物监护设备(论文+源码)
stm32·单片机·毕业设计·宠物监护
小李做物联网6 小时前
【物联网毕设】60.1基于单片机物联网嵌入式项目程序开发之智能家庭安防感应报警
stm32·单片机·嵌入式硬件·物联网
沉在嵌入式的鱼6 小时前
STM32--BH1750光敏传感器
stm32·单片机·嵌入式硬件·bh1750·光敏模块