STM32简介(系统结构、引脚定义……)

news/2024/11/18 0:16:49/

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、STM32简介
  • 二、STM32F103xxx
    • 1.STM32F1系列片上资源/外设
    • 2.命名规则
    • 3.系统结构
    • 4.引脚定义
    • 5.启动配置
    • 6.STM32最小系统电路
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:
介绍STM32的片上资源/外设、命名规则、系统结构、引脚定义、启动配置、最小系统电路等基础内容。
STM32:ST指ST公司、M指Microcontroller(微控制器)

一、STM32简介

1)STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器。
2)STM32常用在嵌入式领域。
(1)智能车:循迹小车,读取光电传感器或者摄像头的数据,驱动电机前进和转弯。
(2)无人机:读取陀螺仪加速度计的姿态数据,根据控制算法控制电机速度,保证飞机稳定飞行。
(3)机器人:驱动舵机,控制其关节,让机器人运动。
(4)无线通信:给STM32连接一些2.4G无线模块或者蓝牙、WIFI模块,则具备无线通信能力。
(5)物联网:借助无线通信模块,再通过STM32驱动继电器来控制220v电路的通断。
(6)工业控制:PLC主控。
(7)娱乐电子产品:流水灯之类……
(8)……
3)STM32功能强大、性能优异、片上资源丰富、功耗低、是一款经典的嵌入式微控制器。
STM32家族系列图
此处用STM32F103C8T6。

二、STM32F103xxx

1.STM32F1系列片上资源/外设

片上资源/外设
NVIC:管理中断,如配置中断优先级等。
SysTick:给操作系统提供定时服务。
RCC:使能外设时钟。
AFIO:复用功能端口重定义,及中断端口配置。
CAN:多应用于汽车领域
RTC:在STM32内部完成年月日、时分秒的计时功能,可接外部备用电池,掉电也可使用。
CRC:判断数据的正确性。
PWR:电源可睡眠,使功耗降低。
GPIO、EXTI、TIM、USART、I2C、SPI、ADC、DMA等都会在专题内逐一介绍。
……
STM32F103x8B片上存在的外设
如果操作片上不存在的外设资源,是无法工作的。

2.命名规则

示例:STM32 F103 C 8 T 6
STM32含义
F含义
103含义
![103含义](https://img-blog.csdnimg.cn/50531279eb4e498a957f244072ef64bf.png
C含义

8含义
![8含义](https://img-blog.csdnimg.cn/6cdd6a922fdd479cb3a640efc89ec5aa.png
T含义

6含义
可见STM32F103C8T6的具体参数为:增强型、48脚、64K字节的闪存存储器、LQFP封装、在-40~85℃间可正常工作。

3.系统结构

系统结构
将此结构分成四个部分:
**(1)**区域1位Cortex-M3内核,内核引出三条总线;分别是ICode指令总线、DCode数据总线、System系统总线。其中ICode和DCode主要用以连接Flash闪存,Flash中存储的内容为我们所编写的程序。ICode指令总线就是用以加载指令程序的,DCode数据总线是用来加载数据的,比如常量和调试参数等。System系统总线连接其他东西上,如SRAM(用于存储程序运行时的变量数据)、FSMC等。
**(2)**AHB(先进高性能总线)系统总线用于挂在主要外设,挂载的一般是最基本的或者是性能比较高的外设,如复位和时钟控制(RCC)、SDIO、两个桥接(APB1和APB2)等。APB(先进外设总线),用于连接一般的外设;因为AHB与APB在总线协议、总线速度、数据传送格式之间的差异,故中间需要加两个桥接,完后数据的转换和缓存。APB2(一般与AHB同频)的性能比APB1高一些,故连接一些外设中稍微重要的部分,如GPIO、外设的一号(USART1、TIM1、ADC1……);APB1则连接DAC、外设的其它号(USART2、TIM2……)。前文所述的就为区域3,主要介绍的就是外设种类和分布。
**(3)**区域4为DMA(直接内存访问),可理解为内核CPU小秘书,若是有一些大量搬运数据的工作,为了减少CPU的工作量,给其它工作腾出时间,就将此工作交给DMA来做。
DMA主要用来做如数据搬运一样简单且反复要做的事情,其通过DMA总线连接到总线矩阵上,可以拥有和CPU一样的控制权,用于访问其它外设;当需要DMA搬运数据时,外设就会通过请求线发送DMA请求,然后DMA就会获得总线控制权,访问并转运数据,整个过程不需要CPU的参与,省下CPU的时间来干其它事。

4.引脚定义

在拿到新的芯片时,需要着重的看一下其引脚定义,这样才能大致了解该如何使用该芯片。
STM32F103C8T6引脚定义
引脚图
砖红色:与电源相关的引脚;有FT则表示其可忍受5V电压,如果没有FT,需要5V的电平就需要加装电平转换电路。
蓝色:与最小系统相关的引脚
绿色:I/O口、功能口相关引脚
主功能就是上电后默认的功能,一般和引脚名称相同;若不同,引脚的实际功能是主功能而不是引脚名称的功能。默认复用功能,是IO口同时连接的外设功能引脚,在配置IO时可以选择是通用IO口还是复用功能。重定义功能,其作用是如果有两个功能同时复用在一个IO上,而且确实需要这两个功能,就可以把其中一个复用功能重映射到其他端口上(前提是,重定义功能的表里有对应的端口)。
**1)**VBAT:备用电池供电引脚,其可接一个3V的电池,当系统电源断电时,备用电池可以给内部的RTC时钟和备份寄存器提供电源。
**2)**2号引脚是IO口或者侵入检测或RTC,IO口可根据程序输出或读取高低电平,是最基本也是最常用功能;侵入检测可以用来做安全保障的功能;RTC可用来输出RTC校准时钟、RTC闹钟脉冲或秒脉冲。
**3)**3、4号引脚是IO口或者接32.768KHz的RTC晶振。
**4)**5、6号引脚接系统主晶振,一般是8MHz。芯片内有锁相环电路,可以对8MHz的频率进行倍频,最终产生72MHz频率,作为系统的主时钟。
**5)**7号NRST为系统复位引脚,N表示它是低电平复位。
**6)**8、9号引脚是内部模拟部分的电源,如ADC、RC振荡器等。VSS为负极,接GND,VDD是正极,接3.3V。
**7)**10~19号引脚都为IO口,PA0兼具Wake-up功能,用于唤醒处于待机模式的STM32.
20号引脚为IO口或者BOOT1引脚,BOOT引脚是用来配置启动模式的。
**8)**23、24号的VSS_1(负极)和VDD_1(正极)是系统的主电源口。后面的VSS_2和VDD_2、VSS_3和VDD_3都是系统的主电源口,STM32内部采用分区供电的模式,把VSS都接GND,VDD都接3.3V即可。
**9)**25~33都为IO口。
**10)**34号加37号40号,都是IO口或者调试端口;默认的主功能是调试端口,调试端口就是用来调试程序和下载程序的,次STM32支持SWD和JTAG两种调试方式。SWD需要两根线,分别是SWDIO和SWCLK;JTAG需要5根线,分别是JTMS、JTCK、JTDI、JTDO、NJTRST。此处介绍用STLINK下载调试程序,在SWD调试方式时,PA15、PB3、PB4可以切换回普通的IO使用,但是要在程序中进行配置,不配置的话默认是不会为IO口的。
**11)**41-43及45~46都是IO口,44号BOOT0做启动配置。

5.启动配置

启动模式
启动配置的作用就是指定程序开始运行的位置,一般情况下,程序都是在Flash程序存储器开始执行;当然在某些情况下,需要程序在别的地方开始执行,用来完成特殊的功能。
在所述STM32系列中可以通过配置BOOT0和BOOT1引脚,来选择三种启动模式。
**1)**BOOT0接0(即接地),此时BOOT1无论接什么,启动模式都为主闪存存储器模式。
**2)**BOOT1接地,BOOT接1(即接3.3V电源),系统模式被选为启动区域(此模式用来做串口下载用)。BOOTLoader程序,其作用就是接收串口的数据,然后刷新到主闪存中,就可以使用串口下载程序。
**3)**BOOT0接1,BOOT1接1,配置内置SRAM启动,主要用来进行程序调试。
表6 最后一句话的意思为,BOOT引脚的值是在上电复位后的一瞬间是有效的,之后就随意了。

6.STM32最小系统电路

最小系统电路
右侧为STM32及供电部分。滤波电容可保证供电电压的稳定,遇到供电都会习惯的加上几个滤波电容。
OSC32为32.768KHz晶振的意思,32768(2的15次方),内部RTC电路经过2^15分屏,就可生成1s的时间信号。

总结

要想让STM32正常工作,就需要把电源部分和最小系统部分的电路连接好(最小系统版),即引脚定义标砖红和蓝色的部分。仔细阅读官方手册。


http://www.ppmy.cn/news/879120.html

相关文章

Kong 服务和路由的添加

管理服务 这里参考DB-less-Mode,因为使用的是yaml配置文件的形式,所以所有的相关配置只需要往初始化的kong.yml文件中添加就可以了,就像nginx的配置文件 DB-less-Mode 创建服务 vim /etc/kong/kong.yml services: - name: my-service #…

【从零开始学习CSS | 第三篇】选择器优先级

目录 前言: 常见选择器的优先级(从高到低) 选择器的权重: 总结: 前言: 在前几篇文章中我们介绍了大量的选择器,那么大量的选择器在使用的时候,一定是有一个优先级顺序的&#xff…

vue npm install报错如何处理

npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While resolving: eslint-plugin-vue5.2.3 npm ERR! Found: eslint6.8.0 npm ERR! node_modules/eslint npm ERR! peer eslint"> 1.6.0" from vue/cli-plugin-eslint4.4.4 这个错误…

明日之后 服务器维护,明日之后更新维护公告

斗玩网(d.chinaz.com)报道:明日之后12月27日更新了什么?更新了那些内容?更新几点结束?一起来看看明日之后12月27日更新维护公告吧。亲爱的幸存者:欢迎收听 101 广播电台,我是播音员西奥德罗。为了更好的明天,接下来我将为您播报…

5月18日德玛西亚服务器怎么维护,LOL5.18测试服更新内容是什么_LOL5月18日测试服更新内容介绍_游戏堡...

LOL5.18测试服更新内容是什么?测试服每天都有不同的内容在进行测试,下面是游戏堡小编为大家整理的LOL5月18日测试服更新内容介绍,一起来看看吧! 原画更新 都铎王朝 图奇 英雄改动 疾风剑豪 亚索 斩钢闪(Q) 旋风烈斩的持续时间由10…

不义联盟2服务器维护,不义联盟2停止工作怎么解决_不义联盟2闪退怎么办

不义联盟2停止工作怎么办?很多玩家们在进入游戏的途中会出停止工作这样弹窗,导致无法运行游戏,下面我们就来分享一下不义联盟2停止工作解决方法,希望对各位有所参考。 不义联盟2停止工作解决方法 1.系统如果是ghost安装方式&#…

今天英雄联盟服务器维护要到好久,lol今天维护时间是多久 lol维护公告2020最新...

英雄联盟今天维护到几点?今日维护时间是多久?lol维护公告2020最新消息来啦!英雄联盟在4月16日凌晨1点进行了游戏的停机更新。下面,就和小编一起来了解一下最新的维护内容吧! lol10.8版本维护到几点 LOL将在4月16日凌晨1点关闭排位赛入口(不影响已经在进行中的对局…

队列--C语言实现数据结构

本期带大家一起用C语言实现队列🌈🌈🌈 文章目录 1、队列的概念2、队列的操作流程3 、队列的结构4、队列的实现4.1 队列的结构设计4.2 队列的初始化4.3 入队4.4 判断队列是否为空4.5 出队4.6 获取队头数据4.7 获取队尾数据4.8 获取队列当中数据…