news 2026/7/17 21:44:57

STM32简单项目

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
STM32简单项目

项目需要的硬件设施

1.STM32主板

将STM32最小系统板插在面包板上,作为基本的硬件单元

STM32支持SWD和JTAG两种调试方式

项目所用为:

STM32F103C8T6:
系列:主流系列STM32F1,内核:ARM Cortex-M3,主频:72MHZ,RAM(运行内存):20K(SRAM:实际存储介质),ROM(程序存储器 ):64K(Flash:实际存储介质),供电:2.0V~3.6V(标准3.3V),封装:LQFP48。

项目使用STLINK来下载调试程序,STLINK用的是SWD的方式。

2.OLED

OLED作为调试和显示的屏幕。

3.STLINK:一款“下载器”兼“调试器”

STLIMK插在电脑上用于把程序烧录进芯片,以及实时调试芯片上正在运行的程序。和供电

4.LED发光二极管(指示灯)

通过发光(或不发光)以及光的变化,来告诉你设备内部正在发生什么。

5.蜂鸣器(BZ/BUZ)

将电信号转换为声音信号,即发声。它主要用于向用户提供听觉反馈。

6.TB6612FNC直流电机驱动模块

连接控制大脑(如单片机)和动力心脏(电机),把大脑(单片机)的弱信号,转化成驱动电机的大电流,并实现精密控制。

软件设备

Keil5 MDK:专门用来给ARM架构芯片(特别是常用的STM32系列)编写和调试程序的。

其他的一些设备

电位器:通过改变电阻值,来连续地调节电路中的电压或电流

USB转串口模块:使STM32和电脑进行串口通信。

光敏电阻模块:把“光线的强弱”这个物理量,转换成一个电路可以识别和处理的“电信号”(通常是电压高低或电阻大小)。进行IO口读取实验或者AD实验。

热敏电阻模块:把“温度的高低”这个物理量,转换成一个电路可以识别和处理的电信号(电压或电阻值)

对射式红外模块:利用“红外线通路是否被阻断”来检测两个物体之间是否存在遮挡物。它相当于一个非接触式的、由光线控制的电子开关

反射式红外模块:利用“红外线是否被反射回来”来判断前方一定距离内是否有物体存在。它相当于一个非接触式的、主动发射光线的“接近开关”

W25Q64 Flash存储模块:用于存储数据并且是用SPI总线进行通信的。

MPU6050陀螺仪和加速度计:让电子设备能够精确地感知自身的运动姿态和受力情况,MPU6050 与主控芯片(如 Arduino、STM32)通过I2C 接口通信

旋转编码器:可以输出两路正交的方波信号,用于指示旋转的方向和速度

直流电机:把电能转换成机械能。

SG90舵机:用PWM进行控制,就是精确地旋转到一个指定的角度,并保持住这个位置。它不像普通直流电机那样连续旋转,而是像一只“机械手”,能够听从指令,将输出轴固定在0到180度之间的任意一个角度上。是一种特殊的位置伺服电机,它的核心任务就是定位。可以用来做一些机器人或者机械臂的关节。

STM32简介

STM32是基于ARM Coretx-M内核开发的32位微控制器。

STM32常应用在嵌入式领域,如智能车、无人机、机器人、无线通信、物联网、工业控制、娱乐电子产品等。

STM32功能强大、性能优异、片上资源丰富(除了内核和存储器,其他的就是片上资源(外设资源))、功耗低,是一款经典的嵌入式微控制器。

ARM

Cortex-R系列 和Cortex-M系列适用于嵌入式领域(单片机领域)。

Cortex-A系列适用于高端应用型领域(手机领域),性能最高。

片上资源/外设

STM32系统结构

ICode和DCode用来连接Flash和内核

Flash存放编写的程序

ICode指令总线用来加载程序指令

DCode数据总线用来加载数据,比如常量和调试数据

System系统总线连接内核和SRAM、FSMC

SRAM用于存储程序运行时的变量数据

AHB系统总线(AHB:先进高性能总线):用于挂载最基本或者性能高的外设,如复位和时钟控制、SDIO

APB:先进外设总线(用于连接一般的外设)

因为AHB和APB的总线协议、总线速度、数据传输格式的差异,所以需要两个桥接来完成数据的转换和缓存

性能:AHB(72MHz) > APB2(72MHz) > APB1(32MHz)

DMA:做一些简单反复的事情,如数据搬运

引脚定义

标橙色的是电源相关的引脚,标蓝色的是最小系统相关的引脚,标绿色的是IO口、功能口相关的引脚。

S代表电源,I代表输入,O代表输出,I/O代表输入输出

I/O口电平:代表IO口所能容忍的电压(FT:5V,没有FT容忍3.3V)

引脚简介
1号引脚 VBAT:备用电池供电的引脚,接3V的电池,当系统电源断电时,备用电池可以给内部的RTC时钟和备份寄存器提供电源

2号引脚 IO口或者入侵检测或者RTC:IO口可以根据程序输出或者读取高低电平,侵入检测用来做安全保障的功能,RTC引脚可以用来输出RTC校准时钟、RTC闹钟脉冲或者秒脉冲

3、4号引脚 IO口或者接3.768KHz的RTC晶振
5、6号引脚 接系统的主晶振(一般为8MHz):芯片内有锁相环电路,可以对8MHz的频率进行倍频,最终产生72MHz的频率,作为系统的主时钟。
7号NRST是系统复位引脚,N代表它的低电平复位

8、9号引脚是内部模拟部分的电源,比如ADC模数转换器、RC振荡器

VSS是负极,接GND。VDD是正极,接3.3V

10~19号引脚都是I/O口:其中PA0还兼具WKUP的功能,可以唤醒处于待机模式的STM32
20号引脚是I/O口或者BOOT1引脚(用来配置启动模式的)
21,22号都是I/O口

23号VSS_1和24号VDD_1是系统的主电源口,VSS是负极,VDD是正极

35、36、47、48号都是主电源口

25~33号引脚都是I/O口

34号加上37~40号都是I/O口或者调试端口

调试端口:调试程序下载程序

STM32支持SWD和JTAG两种调试方式:
SWD需要两根线,分别是SWDIO和SWCLK

JTAG需要5根线,分别是JTMS、JTCK、JTDI、JTDO、NJTRST

项目使用STLINK来下载调试程序,STLINK用的是SWD的方式,只需占用PA13和PA14两个I/O口

41~43和45、46号都是I/O口
44号BOOT0用来启动配置

STM32及供电

STM32及供电

STM32图中C4、C5、C6是滤波电容,电容可以保证供电电压的稳定,一般遇到供电都会加上滤波电容。

VBAT接备用电池,正极接VBAT,负极接GND。备用电池是给RTC和备份寄存器服务的。

晶振电路

接一个8MHz的主时钟晶振,8MHz经过内部锁相环倍频,得到8 * 9 = 7MHz的主频,引脚分别连接STM32 5和6对应的引脚,另外还需要接两个20pF的电容,电容的另一端接GND

复位电路

用来给单片机提供复位信号,NRST接STM327号引脚,NRST是低电平复位。

当复位电路在上电的瞬间,电容是没有电的,电源通过电阻开始向电容充电,并且此时电容呈现短路状态,此时NRST引脚产生低电平。当电容逐渐充满电时,电容相当于断路,此时NRST就会被R1上来为高电平。

上电瞬间的波形就是先低电平,然后逐渐高电平。

K1按键按下时,电容会放电,并且NRST引脚接地,相当于手动产生了低电平复位信号,K1松开后,NRST回归高电平,此时单片机从复位状态转为工作状态。

启动配置

0(低电平/接地)X(任意)主Flash存储器(你烧写的用户程序)
1(高电平/接VDD)0(低电平)系统存储器(芯片出厂内置的Bootloader,用于通过串口/USB重新烧录程序)
1(高电平)1(高电平)内置SRAM(用于调试或临时运行程序)
关键机制:芯片只在复位信号释放(从低变高)的瞬间采样这些引脚的电平,并锁存起来。在正常运行过程中,你再改变这些引脚的电平是无效的。

下载端口

下载端口"就是指把编译好的程序烧录到芯片内部Flash存储器的物理连接接口。它是在PCB上为烧录程序预留的一组引脚。

STM32F103C8T6核心板原理图

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

Python学生成绩管理系统开发:从数据库设计到GUI实现

这类毕业设计项目最值得先看的不是功能有多全,而是能不能在普通电脑上快速跑起来、代码结构是否清晰、有没有留出足够的扩展空间。学生成绩管理系统属于经典选题,但很多现成代码要么环境依赖复杂,要么业务逻辑混乱,真正改起来比从…

作者头像 李华
网站建设 2026/7/17 21:41:42

高仿蜜雪冰城小程序【程序源代码】

(一)系统介绍1.1 系统介绍高仿蜜雪冰城小程序(含源码)本系统选择微信小程序原生开发 云CMS技术,运用了微信云集合数据库为后台数据库,将用户分为管理员、用户两大类,系统实现了首页、该系统采用…

作者头像 李华
网站建设 2026/7/17 21:40:48

C++ 图书管理系统--单机版 ( 约 1000行 代码 )

用 C 实现的单机版图书管理系统,具备完整借还管理、库存统计、热度排行、数据持久化和命令行交互界面。1. 程序实现的功能清单:编号功能说明1添加图书ISBN/书名/作者/类型/库存2修改图书支持改 ISBN(级联更新读者记录)3入库采购新…

作者头像 李华
网站建设 2026/7/17 21:40:44

临时设计方案

架构设计 采用"内核布局 全局共享模块 独立应用外壳"的模块化系统。超级管理员通过配置组合模块生成独立应用,每个应用拥有专属侧边栏与布局,确保不污染原版代码,支持平滑升级与渐进式扩展。 存储方案 所有动态配置与映射…

作者头像 李华
网站建设 2026/7/17 21:40:17

从VC++运行库到现代C++开发:解决兼容性难题与生态演进

1. 从一本经典书籍出发,聊聊Visual C的过去、现在与未来提到《Visual C从入门到精通》这本书,尤其是它的第三版,我相信很多在Windows平台上摸爬滚打多年的C开发者,都会会心一笑。这本书,连同那个经典的Visual C 6.0开发…

作者头像 李华