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

型号分类及缩写

新建工程步骤

工程架构

相关推荐
oshan20126 小时前
零基础STM32入门教程--10-PWM 呼吸灯
stm32·单片机·嵌入式硬件
Messy create11 小时前
【BMS-AFE-温度检测】
stm32·单片机·能源
桃蹊、12 小时前
串口/网络透传实战:FreeRTOS 多任务架构与连接池设计
stm32·物联网·wifi·freertos
新晨单片机设计14 小时前
S001A-基于STM32单片机超声波视力保护仪【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus
星河单片机14 小时前
STM32驱动Y01-3IN1空气质量模块+OLED显示完整教程
stm32·单片机·嵌入式硬件·空气质量·甲醛检测·二氧化碳检测·tvoc检测
玩转单片机与嵌入式14 小时前
深入浅出TinyML 21:INT8量化改变了模型中的哪些数据?
stm32·深度学习·tinyml
别催小唐敲代码14 小时前
stm32_mpu6050_滤波教程
stm32·单片机·嵌入式硬件
一条破秋裤15 小时前
STM32 学习笔记:GPIO 输出实验——LED 闪烁、流水灯与蜂鸣器
笔记·stm32·学习
一条破秋裤17 小时前
STM32 学习笔记:GPIO 输出原理与硬件设计
笔记·stm32·学习
单片机仿真设计17 小时前
【proteus仿真设计】基于 STM32 单片机火灾监测报警系统设计(仿真图+程序)
stm32·单片机·嵌入式硬件·proteus·毕设