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核心板原理图

相关推荐
单片机杂货铺13 小时前
基于单片机的智能粮仓控制系统设计与实现
stm32·单片机·嵌入式硬件·物联网·计算机外设·51单片机·课程设计
指尖的爷13 小时前
RKNN转化环境搭建(rknn_toolkit2新版本)
嵌入式硬件·深度学习·物联网·目标检测
梁朝辉13 小时前
滴泪的曲线(Curved)还是直线(Line)什么区别,都应用于什么场景!
嵌入式硬件·硬件工程
clear sky .15 小时前
stm32H7进入HardFault_Handler机制
stm32·单片机·嵌入式硬件
小僧景贤16 小时前
STM32 GPIO 详解(含寄存器、HAL 库、电气特性、低功耗深度剖析)
stm32·单片机·嵌入式硬件
远翔调光芯片^1382879887218 小时前
从参数到应用:FP7208如何以0.2V精密反馈提升LED驱动性能
科技·单片机·嵌入式硬件·智能家居·能源
碧海银沙音频科技研究院19 小时前
4 BES2710编译环境搭建方法
嵌入式硬件·算法
别催小唐敲代码20 小时前
STM32 定时器学习笔记:TIM 架构、输入捕获与 PWM 一篇讲透
笔记·stm32·学习
csdn杰哥20 小时前
瑞萨单片机AI教程【六】导入外部电机状态数据训练模型
人工智能·单片机·嵌入式硬件·瑞萨·ra6m5
深念Y21 小时前
ZTE_UZ901_NVRAM经验总结
linux·服务器·网络·嵌入式硬件·嵌入式·随身wifi