1.STM32用途简介:
解释:ARM是核心部分,程序的内核,加减乘除的计算,都是在ARM内完成。
智能车方向:循迹小车,读取光电传感器或者摄像头数据,驱动电机前进和转弯。
无人机:用STM32读取陀螺仪加速度计的姿态数据,根据控制算法控制电机的速度,从而保证飞机稳定飞行。
机器人:STM32驱动舵机,控制机器人关节和运动。
无线通信:STM32连接2.4G无限模块或者蓝牙,WIFI模块。
物联网:在无线通信基础上进行操作。
工业控制:PLC电路
娱乐电子产品:略
2.STM32系列介绍:
分别是高性能系列,主流系列,超低功耗系列和无线系列
注:CoreMark越高证明性能越好
具体配合如下:(ARM生成内核,ST公司生成存储器和外设等)
ARM内核分类
蓝色为经典ARM内核;
绿色的为Cortex系列内核。
R系列和M系列用于嵌入式领域:R系列应用于实时性高的场景,如硬盘控制器
M系列应用于单片机领域,如STM32
橙色的A系列用于高端应用型领域,如手机中的苹果,高通,联发科的手机芯片等,所以,A系列性能最高,发展最好。
我们所用到的芯片是:
注:RAM是运行内存,实际存储介质是SRAM
ROM是程序存储器,实际存储介质是Flash闪存
片上资源/外设(主学的内容):
解释:深绿色为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:扩展内存或配置其他总线协议
并不是所有芯片都有所有这些外设,不同芯片不同。可查看数据手册确定,如图(竖着看)
4.命名规则:
5.系统结构:
分为四大部分,如图
解释:左上角为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使用过程如下:
举例解释:ADC模数转换,配置连续转换,1ms转运一次,若CPU进行操作,则会占用CPU,因此,此时需要用DMA转运来提高效率。
6.引脚定义:
注:图上小黑点为一号引脚,1-->48为逆时针排列
引脚定义:
橙色为电源相关引脚,蓝色为最小系统相关引脚,绿色为IO口,功能口引脚
类型中的S代表电源,I代表输入,O代表输出,IO代表输入输出。
IO口中的FT代表能容忍5V电压,不写FT则容忍3.3V电压。
主功能:上电后默认功能,一般与引脚名称相同。若不同,则看主功能。
默认复用功能:使用时,可将某一引脚主功能改为默认复用功能。
重定义功能:重新定义某些IO口的功能,前提是有。
7.启动配置:指定程序开始运行的位置
注:BOOT0为0,BOOT1为X时,X表示无论BOOT1是什么都行(常用)
BOOT1=0,BOOT0=1,串口下载程序,用于STLINK,JLINK均被使用为IO口(无串口下载模块)的情况。
BOOT引脚的值是在上电复位后的一瞬间有效。由上图引脚定义图知,上电瞬间为BOOT1功能,当第四个时钟过了后,变为PB2功能。
8.最小系统电路:
供电部分注意: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.最小系统实物图如下:
STM32F103C8T6。
三个黄色上面有个黑色是跳线帽,用来配置BOOT引脚。
下面为复位按键。
左侧是USB接口,USB通信和为板子供电。
右侧金属外壳为8MHz的主时钟晶振。
黑色为32.768KHz的RTC晶振。
两个白色的为LED,上边那个为PWR电源指示灯,下边那个为PC13口的测试灯。
最右边为SWD调试接口,用来下载程序。