news 2026/3/8 6:49:23

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/3/4 7:06:34

事件查看器-事件ID

事件查看器-事件ID一、核心日志类别说明二、系统日志(System)常用事件ID(重点)1. 启动/关机相关2. 服务相关3. 驱动/硬件相关4. 系统更新/组件相关三、安全日志(Security)常用事件ID(安全审计重…

作者头像 李华
网站建设 2026/3/4 11:38:54

单步出图革命:Consistency Model如何以100倍效率重构AI绘画产业格局

在数字创意产业飞速发展的今天,当设计师们仍在为传统AI绘画工具动辄数分钟的等待时间而苦恼时,一场静默的技术革命已悄然降临。OpenAI研发的Consistency Model(一致性模型)以颠覆性的"一步到位"生成方式,将图…

作者头像 李华
网站建设 2026/3/4 9:32:11

搭建鸿蒙PC命令行适配环境测试hello程序

搭建鸿蒙PC命令行适配环境前言系统环境windows系统搭建好hdc工具wsl系统环境为Ubuntu 22.04配置鸿蒙sdk下载配置验证命令行hello工具编译运行hello程序其它前言 鸿蒙PC命令行环境搭建,通常借助Ubuntu系统搭建交叉编译环境。这里借助windows系统的wsl完成。 系统环…

作者头像 李华
网站建设 2026/3/3 5:40:53

编辑相似度(Edit Similarity):原理、演进与多模态扩展

本文由「大千AI助手」原创发布,专注用真话讲AI,回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我,一起撕掉过度包装,学习真实的AI技术! 1 引言 在人工智能与机器学习领域,衡量两个数据对象之间的…

作者头像 李华
网站建设 2026/3/5 9:54:56

【深度解析】MiniCPM 2.0:端侧大模型的技术性进展与技术革新

2024年9月5日,MiniCPM团队正式发布了备受瞩目的端侧语言大模型系列——MiniCPM 2.0的技术报告。作为一款聚焦于终端设备部署的轻量化大模型,MiniCPM 2.0在保持模型小巧体积的同时,实现了性能的跨越式提升,为人工智能在边缘计算领域…

作者头像 李华
网站建设 2026/2/28 6:14:30

ClickHouse 快速入门

ClickHouse 快速入门1 ClickHouse 介绍1 行式存储VS列式存储2 ClickHouse VS MySQL3 ClickHouse VS Apache Doris4 ClickHouse 的优缺点5 ClickHouse 适用的场景2 ClickHouse 安装1 镜像下载2 容器运行3 创建用户3 ClickHouse 连接1 连接2 建表测试4 SpringBoot 集成 ClickHous…

作者头像 李华