STM32:宏观介绍STM32(内含:1.STM32用途简介+2.系列介绍+3.片上资源/外设+4.命名规则+5.系统结构+6.引脚定义+7.启动配置+8.最小系统电路+9.最小系统实物图)

简介: STM32:宏观介绍STM32(内含:1.STM32用途简介+2.系列介绍+3.片上资源/外设+4.命名规则+5.系统结构+6.引脚定义+7.启动配置+8.最小系统电路+9.最小系统实物图)

1.STM32用途简介:


fc3375bebd50481d99eef8b849fab18e.png


解释:ARM是核心部分,程序的内核,加减乘除的计算,都是在ARM内完成。


智能车方向:循迹小车,读取光电传感器或者摄像头数据,驱动电机前进和转弯。


无人机:用STM32读取陀螺仪加速度计的姿态数据,根据控制算法控制电机的速度,从而保证飞机稳定飞行。


机器人:STM32驱动舵机,控制机器人关节和运动。


无线通信:STM32连接2.4G无限模块或者蓝牙,WIFI模块。


物联网:在无线通信基础上进行操作。


工业控制:PLC电路


娱乐电子产品:略


2.STM32系列介绍:


58bddee290a14c86b6cac286ac29200e.png


分别是高性能系列,主流系列,超低功耗系列和无线系列


注:CoreMark越高证明性能越好


78bf72b8c99d4114a90854362104bf1d.png


具体配合如下:(ARM生成内核,ST公司生成存储器和外设等)


0f3fa1f72284430fa7302ae0009f8107.png


ARM内核分类


454a6afb27534233812e36b0b278d9f0.png


蓝色为经典ARM内核;


绿色的为Cortex系列内核。


R系列和M系列用于嵌入式领域:R系列应用于实时性高的场景,如硬盘控制器


M系列应用于单片机领域,如STM32


橙色的A系列用于高端应用型领域,如手机中的苹果,高通,联发科的手机芯片等,所以,A系列性能最高,发展最好。


我们所用到的芯片是:


7a8ac966935c4669b4fed619ae39665c.png


注:RAM是运行内存,实际存储介质是SRAM


ROM是程序存储器,实际存储介质是Flash闪存


片上资源/外设(主学的内容):


a5aec1802d5b4027bdc839c58b6e6841.png


解释:深绿色为Cortex-M3内核内的外设,其他为内核外的外设


1.NVIC:用于管理中断的设备,如配置中断优先级


2.SysTick:定时器,用于给操作系统提供定时服务(delay函数)


3.RCC:配置系统时钟,操作前要先使用RCC完成使能时钟


4.GPIO:通用IO口,如电灯,读取按键等


5.AFIO:复用IO口,完成功能端口重定义


6.EXTI:配置外部中断后,当引脚有电平变化时,触发中断,让CPU处理


7.TIM:分为高级定时器,通用定时器(可用于测频率,生成PWM波形,配置专用编码器接口等),基本定时器三种


8.ADC:12位,直接读取IO口模拟电压值,无需外部连接AD芯片


9.DMA:帮助CPU完成搬运数据等任务


10.CAN:多用于汽车领域


11.RTC:在STM32内部完成年月日,时分秒的计时功能,接外部备用电池,掉电仍正常使用


12.CRC:判断数据的正确性


13.BKP:连接备用电池,掉电仍保留数据


14.IWDG WWDG:电磁干扰死机或者程序设计不合理死循环时,及时复位芯片,保证系统的稳定


15.FSMC:扩展内存或配置其他总线协议


并不是所有芯片都有所有这些外设,不同芯片不同。可查看数据手册确定,如图(竖着看)


2daf3be7a9e7487ea935598a6d1aa07f.png


4.命名规则:


4fe3a2d3137243f2bdafe0953e01a9b9.png


5.系统结构:


70ca67dbc0724ffaa8bce2e60e7c50de.png


分为四大部分,如图


76ec1f163ff34767a74e0d09db5a25e5.png


解释:左上角为Cortex-M3内核,引出三条总线,为ICode指令总线,DCode数据总线,System系统总线。ICode和DCode主要用于连接Flash闪存,Flash内为存储的程序。ICode用于加载程序指令,DCode用于加载数据。System连接SRAM用于存储程序运行时的变量数据


AHB是先进高性能总线。


APB为先进外接总线,用于连接一般的外设。APB2的性能>APB1。APB2一般和AHB同频率,为72MHz,APB1为36MHz。所以,APB2连接外设较重要部分。


左下角DMA可理解为CPU的助手,当有大量数据搬运时,如果使用CPU,就浪费时间,消耗CPU的效率。


DMA使用过程如下:


37bece59ea58480894309850ea6a3adb.png


举例解释:ADC模数转换,配置连续转换,1ms转运一次,若CPU进行操作,则会占用CPU,因此,此时需要用DMA转运来提高效率。


6.引脚定义:


66ec88447e24431eb28fc0f00d66b011.png


注:图上小黑点为一号引脚,1-->48为逆时针排列


引脚定义:


774eff0ba05f4ed084dba3bb8d10a4e2.png

d85a19b761554495b2e6d4160ab62536.png


橙色为电源相关引脚,蓝色为最小系统相关引脚,绿色为IO口,功能口引脚


类型中的S代表电源,I代表输入,O代表输出,IO代表输入输出。


IO口中的FT代表能容忍5V电压,不写FT则容忍3.3V电压。


主功能:上电后默认功能,一般与引脚名称相同。若不同,则看主功能。


默认复用功能:使用时,可将某一引脚主功能改为默认复用功能。


重定义功能:重新定义某些IO口的功能,前提是有。


7.启动配置:指定程序开始运行的位置


1227bb074a864cf7874eec5cd57e7d3e.png


注:BOOT0为0,BOOT1为X时,X表示无论BOOT1是什么都行(常用)


BOOT1=0,BOOT0=1,串口下载程序,用于STLINK,JLINK均被使用为IO口(无串口下载模块)的情况。


BOOT引脚的值是在上电复位后的一瞬间有效。由上图引脚定义图知,上电瞬间为BOOT1功能,当第四个时钟过了后,变为PB2功能。


8.最小系统电路:


98ee1ee93a9045cba32efe82d26e165b.png


供电部分注意:VDD接3.3V电源,VSS接GND,电源和GND之间要连接一个电容,很有必要。


晶振部分注意:接8MHz的主时钟晶振,最终变为72MHz。晶振两个引脚通过网络标号,接到STM32的5,6引脚。接2个20pf的电容,作为起振电容,电容另一端接地。如果还需要晶振,则接3,4号引脚。


复位部分注意:NRST接STM32的7号引脚。低电平复位。上电瞬间,电容没有电。为充电。


充电过程NRST为低电平。断电后,电容断开,NRST被R1上拉为高电平。波形为先低电平后高电平。低电平即为复位信号。这个过程速度快。按键按下时,为低电平,松下时,为高电平。多用于死机时,按下使系统重新启动。


启动配置部分注意:BOOT0通过H1选择3.3V还是GND,完成开关功能。


下载端口部分注意:如果为STLINK,则需要把SWDIO和SWCLK引脚引出来接线。


9.最小系统实物图如下:


195d7e9c6b754bb7b1ed45cd1a8741c5.png


STM32F103C8T6。


三个黄色上面有个黑色是跳线帽,用来配置BOOT引脚。


下面为复位按键。


左侧是USB接口,USB通信和为板子供电。


右侧金属外壳为8MHz的主时钟晶振。


黑色为32.768KHz的RTC晶振。


两个白色的为LED,上边那个为PWR电源指示灯,下边那个为PC13口的测试灯。


最右边为SWD调试接口,用来下载程序。



相关文章
|
7月前
|
物联网 开发者 智能硬件
STM32:引领嵌入式系统新时代的微控制器
STM32:引领嵌入式系统新时代的微控制器
|
5月前
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
834 0
|
2月前
|
传感器 监控 物联网
基于STM32+微波雷达设计的非接触式睡眠监控系统
本项目开发一种非接触式的睡眠监控系统,该系统利用先进的60GHz毫米波雷达技术和STM32微控制器,实现了对人体在睡眠过程中的存在感知、运动感知以及生理指标如呼吸频率、心率的实时监测。系统能够自动评估睡眠质量,并在用户睡眠周期结束时提供睡眠评分。为了确保用户能够在任何地点了解自己的睡眠状况,系统集成了Wi-Fi模块,可以将收集到的数据上传至华为云物联网平台,并通过专门设计的移动应用程序供用户远程访问。此外,系统还具备超阈值报警功能,当检测到异常的生理指标时会发出警报提醒。本地1.44寸TFT LCD显示屏用于实时显示监测到的信息,包括生理指标和环境数据。为了全面监测用户的健康状况,系统还加入了
324 0
基于STM32+微波雷达设计的非接触式睡眠监控系统
|
2月前
|
存储 机器学习/深度学习 编解码
基于STM32的车牌识别系统
基于STM32的车牌识别系统
131 0
|
2月前
|
传感器 网络协议 物联网
基于STM32的环境监测系统 (esp8267)(下)
基于STM32的环境监测系统 (esp8267)(下)
159 0
|
2月前
|
传感器 测试技术 芯片
基于STM32的环境监测系统 (esp8266)(上)
基于STM32的环境监测系统 (esp8266)(上)
500 0
|
3月前
|
存储 传感器 Linux
STM32微控制器为何不适合运行Linux系统的分析
总的来说,虽然技术上可能存在某些特殊情况下将Linux移植到高端STM32微控制器上的可能性,但从资源、性能、成本和应用场景等多个方面考虑,STM32微控制器不适合运行Linux系统。对于需要运行Linux的应用,更适合选择ARM Cortex-A系列处理器的开发平台。
296 0
|
7月前
|
内存技术 存储 Android开发
MCU最小系统电路设计(以STM32F103C8T6为例)-3
MCU最小系统电路设计(以STM32F103C8T6为例)
MCU最小系统电路设计(以STM32F103C8T6为例)-3
|
7月前
|
芯片
MCU最小系统电路设计(以STM32F103C8T6为例)-1
MCU最小系统电路设计(以STM32F103C8T6为例)
MCU最小系统电路设计(以STM32F103C8T6为例)-1
|
6月前
|
传感器
【经典案例】STM32F407使用HAL库配置I2C详解
STM32F407是一个强大的微控制器,广泛应用于嵌入式系统中。在许多应用中,我们需要使用I2C总线来与传感器、EEPROM、显示屏等外设进行通信。本文将详细介绍如何使用STM32 HAL库来配置和使用I2C接口。
819 2