news 2026/9/2 13:51:44

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/9/2 19:51:52

Kimi Linear架构革新:重新定义大模型长文本处理效率与性能边界

在人工智能大模型领域,注意力机制一直是制约模型性能与效率的关键瓶颈。传统全注意力架构在处理长文本时面临计算复杂度高、内存占用大等问题,而近期推出的Kimi Linear混合线性注意力架构,通过创新性的设计突破了这一困境。该架构在短文本、长…

作者头像 李华
网站建设 2026/9/2 22:53:12

9合1喝酒聚会全能娱乐微信小程序源码

从摇骰子到人生重启模拟器,一款小程序满足所有聚会娱乐需求,广告变现代码保护全方案还在为朋友聚会时找不到好玩的互动游戏而发愁吗?今天给大家分享一款专为喝酒、聚会场景设计的微信小程序!这个小程序集成了9大核心娱乐功能&…

作者头像 李华
网站建设 2026/9/2 18:53:49

百度网盘提取码智能获取工具完整使用指南

百度网盘提取码智能获取工具完整使用指南 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为繁琐的百度网盘提取码而困扰吗?每次获取分享资源都要经历复制链接、寻找提取码、手动输入的重复过程,这种…

作者头像 李华
网站建设 2026/9/1 21:01:53

你,宇宙唯一的中心:在无限复刻中活出绝对的存在

你,宇宙唯一的中心:在无限复刻中活出绝对的存在 一、宣言:你的坐标是(0,0,0) 此刻,当你阅读这些文字时,请暂停一秒——无论你身处拥挤的地铁、深夜的书房,还是异国街头的咖啡馆——请深深地感受&#xff1a…

作者头像 李华
网站建设 2026/9/2 15:28:57

ConcurrentLinkedQueue实战:电商秒杀系统的队列选型优化

ConcurrentLinkedQueue:高性能无界非阻塞队列深度解析一、核心价值与应用场景在并发编程的世界中,线程安全队列是最基础的并发组件之一。Java并发包提供了两种主要类型的线程安全队列:阻塞队列和非阻塞队列。ConcurrentLinkedQueue作为后者的…

作者头像 李华
网站建设 2026/9/2 20:38:42

downkyi下载优先级终极指南:让你的重要视频先人一步

你是否曾经遇到过这样的烦恼:急需观看的学习视频排在下载队列末尾,而不太重要的娱乐内容却占据了宝贵的下载带宽?downkyi的智能优先级系统正是为了解决这一痛点而设计,让你能够完全掌控视频下载的执行顺序。 【免费下载链接】down…

作者头像 李华