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

型号分类及缩写

新建工程步骤

工程架构

相关推荐
芯片设计-曾工1 天前
当精准脉冲遇上清晰视界——CH2205E模块与YL1621的“黄金搭档“
驱动开发·stm32·单片机·51单片机·硬件工程
LCG元1 天前
STM32 硬件 SPI + DMA 驱动 OLED 显示屏(SSD1306):从原理到 112fps 高速刷新全流程
stm32·单片机·嵌入式硬件
210Brian1 天前
STM32学习笔记(五)EXTI外部中断(上)
笔记·stm32·学习
崇山峻岭之间1 天前
STM32F407的FOC驱动01
stm32·单片机·嵌入式硬件
Lzh编程小栈1 天前
【嵌入式硬核精讲】I2C通信协议万字详解(时序帧格式、同步半双工、重复起始、一对多挂载、寄存器、面试必考)
stm32·单片机·嵌入式硬件·面试
十月的皮皮1 天前
STM32从零到量产开发:四路继电器工业控制模块开发 -上位机 Program.cs 应用程序入口设计说明
c语言·stm32·单片机·stm32cubemx·hal库
LCG元1 天前
STM32F103+MPU6050互补滤波姿态解算与OLED实时显示实战(附完整工程代码)
stm32·单片机·嵌入式硬件
小帽子_1231 天前
STM32+BMS 嵌入式开发:ADC 电压温度采集与总线通信落地教程
stm32·单片机·嵌入式硬件
Lumos6fly2 天前
《嵌入式通讯协议栈实战》 5 AT24C02与OLED
stm32·单片机
初晴融雪-快雪时晴2 天前
量化收益:2026年量化交易公司收益全景深度分析/2026.01.01—2026.07.31
基础知识