news 2026/6/6 3:48:33

STM32学习_新建工程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
STM32学习_新建工程

STM32学习_新建工程

STM32是意法半导体推出的32位ARM Cortex-M内核微控制器系列,具有高性能、低功耗、可靠性强等特点,广泛应用于工业控制、智能家居、汽车电子、医疗设备等领域。

一、简介

STM32系列的特点

高性能:STM32系列单片机采用了ARM Cortex-M内核,具有出色的处理性能和运行速度。此外,它们还具有较大的Flash存储器和SRAM存储器,可以轻松处理复杂的应用程序。

丰富的外设:STM32系列单片机具有丰富的外设,包括多个定时器、计数器、PWM输出、ADC、DAC、通信接口等。这些外设可以帮助开发人员实现各种不同的应用需求。

低功耗:STM32系列单片机采用了先进的低功耗技术,可以在不降低性能的情况下降低功耗。这使得它们非常适合需要长时间运行、或者需要在电池供电的设备中使用。

易于开发:STM32提供了丰富的软件和硬件工具,以帮助开发者快速开发嵌入式应用程序。例如,STM32CubeIDE是一个集成开发环境(IDE),包括调试器和代码生成器,用于开发基于STM32的嵌入式系统。

刚刚烧了4个 LED 灯珠,我把 ST_Link 连接到绿联扩展坞上,再把 ST_Link 输出的3.3V电压引到面包板,在正负极上插上 LED 灯珠,没想到刚接上就烧了。

在之前我都是把 ST_Link 插到电脑 USB ,也是直接插 LDE 灯珠,没出现过烧毁的情况,现在估计是绿联输出的电压应该是 高于5V 的。手头也没有万用表,测不了电压。

现在重新把 ST_Link 插到电脑 USB 上了,恢复正常了。

哈哈,和我观察的情况一样,红色烧的最快,其次是绿色,蓝色和白色没试过。

现在我在 ST_Link 连接电脑 USB 的情况下,再次将 LED 灯珠(红色)插到面包板正负极上,这次正常点亮。可能原因是电脑 USB 输出的电压较低。

LED灯珠电压参数详解:一颗LED灯珠通常需要多少伏电压?-尤集电子网

二、开发和新建工程

STM32的工程结构较复杂,需要用到很多资料,之后的代码也都是需要建立在工程结构上的。所以在学习后续内容之前,需要学习如何新建工程

目前STM32的开发方式主导有

  1. 基于寄存器的方式
  2. 基于标准库(也就是库函数)的方式
  3. 基于HAL库的方式
- 基于寄存器的方式

和我们51单片机的开发方式一样,是用程序直接配置寄存器,来达到我们想要的功能。此种方法最底层、最直接、效率高。有助于理解底层原理,这里推荐使用寄存器方式深入学习。

- 基于库函数的方式

是使用ST官方提供的封装好的函数,经过调用这些函数来间接地配置寄存器。由于ST对寄存器封装地比较好,因而此种方式既能满足对寄存器地配置,对开发人员也比较友好,有利于提高开发效率。

- 新建工程

- 添加固件库文件
1、添加启动文件

文件路径:C:\Users\Admin\Desktop\文件\STM32\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm

文件路径:C:\Users\Admin\Desktop\文件\STM32\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x

文件路径:C:\Users\Admin\Desktop\文件\STM32\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport

回到软件,添加文件

2、创建 main 函数

在工程文件中,添加 User 文件夹

创建 main.c 文件,写入代码验证工程是否创建成功

#include"stm32f10x.h"// Device headerintmain(void){while(1){}}

三、终于可以点灯了

创建工程比较枯燥,终于来到愉快的点灯环节了。

可能是我比较啰嗦,工程的创建现在回头看也是挺简单的。

1、使用寄存器点灯

编写 main.c 内容,实现点灯操作:

#include"stm32f10x.h"// Device headerintmain(void){RCC->APB2ENR=0x00000010;GPIOC->CRH=0x00300000;GPIOC->ODR=0x00000000;while(1){}}

实验现象:STM32 最小系统板 绿色LED灯 被点亮

2、使用库函数点灯

在工程文件下新建文件夹 Library

将固件库Libraries\STM32F10x_StdPeriph_Driver\src中的所有文件复制到 Library 中

文件路径:C:\Users\Admin\Desktop\文件\STM32\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src

将固件库Libraries\STM32F10x_StdPeriph_Driver\inc中的所有文件复制到 Library 中

文件路径:C:\Users\Admin\Desktop\文件\STM32\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\inc

在软件中添加文件

现在还不能直接使用 库函数

这样基于库函数的工程就建好了,下面开始编写代码:

#include"stm32f10x.h"// Device headerintmain(void){// 配置 GPIOC 的外设时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);// 定义结构体,配置端口模式GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOC,&GPIO_InitStructure);// 设置 GPIO_Pin_13 高电平,熄灭//GPIO_SetBits(GPIOC,GPIO_Pin_13);// 设置 GPIO_Pin_13 低电平,点灯GPIO_ResetBits(GPIOC,GPIO_Pin_13);while(1){}}

写在最后

第一个工程比较麻烦,后面就会简单很多

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 21:10:19

PanSearch网盘影视资源搜索聚合工具源码

核心功能: 1. 聚合搜索:集成多个网盘资源搜索引擎,一站式查找影视、软件、资料。 2. 每日热点:内置科技与新闻热点聚合(Readhub),随时掌握最新动态。 3. 极简部署:采用 No-Build 模式…

作者头像 李华
网站建设 2026/6/5 15:20:43

最火流量主壁纸头像小程序源码

这是一款2025最火流量主壁纸头像小程序源码超美UI壁纸小程序带有流量主小程序并且特供图文超详细部署教程,喜欢的自行部署吧! 内涵配置域名和广告替换方法,搭建详细教程,带制作姓氏头像页面、星座匹配页面、九宫格拼图页面、创业…

作者头像 李华
网站建设 2026/6/6 12:26:52

简单升压稳压电路 LTspice 结果

简 介: 本文通过LTspice仿真分析了升压电路的工作特性。首先测量了电路的静态工作电流为3.47mA,并测试了不同负载下的转换效率:1kΩ负载时效率为58.9%,100Ω负载时效率达72.8%。实验发现输出电压随负载变化明显,100Ω时…

作者头像 李华
网站建设 2026/6/5 7:17:29

MySQL运维篇——日志和主从复制

日志(错误日志,二进制日志,查询日志,慢查询日志)(1)错误日志:服务器运行中发生错误时的相关信息 /var/log/show variables like ‘%log_error%’ ; —查看日志位置(2&…

作者头像 李华
网站建设 2026/6/5 14:07:23

Day 34 模块和库的导入

知识点: 1.导入官方库的三种手段 2.导入自定义库/模块的方式 3.导入库/模块的核心逻辑:找到根目录 使用案例 场景1: main.py和circle.py都在同一目录 场景2: main.py和circle.py都在根目录的子目录model/下 场景3: main.py在根目录,circ…

作者头像 李华
网站建设 2026/6/6 21:14:47

CodeSearchNet:一个大规模代码-文档检索数据集的构建、应用与挑战

本文由「大千AI助手」原创发布,专注用真话讲AI,回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我,一起撕掉过度包装,学习真实的AI技术! 1 引言 在人工智能与软件工程交叉的“代码智能”领域,一个…

作者头像 李华