前言
学习自江科大自动协 b站课程。
呜呼!今朝有坑今朝开,管他明朝埋不埋!开新坑的过程是最爽的。
STM32 是 ST 公司基于 ARM CORE-M 芯片(类似 CPU)开发的32位的单片机,相比8位的51单片机性能更强。(也有 STM8)
ARM 公司设计 ARM 内核架构,半导体厂商根据架构完善周边电路并制作芯片。现在95%手机、平板都是 ARM 架构的, ARM 公司是真的牛。
A 系列主要是应用产品使用,比如手机平板就是用A系列。R 系列主要特点是实时,比如硬件处理器中使用。M 系列主要是单片机使用。
STM32 有四大类:高性能类,主流类(我们学习的 F1 就属于主流类),超低功耗类,无线类。
51之前并没有学完(我的51显示屏电位器和显示屏元件坏了。正在考虑要不要买新的。AD DA 转换还没有学)。本课程学习 STM32 开发板,此板建议在51单片机之后学习,需要对相关知识有一定基础才会轻松很多。
关键部分代码最好还是手动敲一敲。
STM32 是使用面包板将原件和开发板引脚连接起来,相比51单片机,既能加深对硬件电路的理解,也能避免引脚焊死的一些问题。比如我的51板子有个电位器拧坏了。现在估计就要整个重买。还有可以自己布局引脚。
当然连线也会有一些新问题。比如电线坏了使得程序跑不了需要排查。
软件开发使用 Keil MDK,这个和 Keil C51不一样。
F1 系列所有的外设(并不是所有芯片都有。比如我们的芯片就只有一部分):
具体有什么可以查数据文档。
STM32:基于 ARM 核心的32位微控制器。
F:通用类型。
103:增强型。
C:引脚数48脚。
8:64K 字节的闪存存储器。
T:采用 LQFP 封装。
6:工业级温度范围 -40~85。
系统结构:
左上角:内核,引出了三条总线。
ICODE DCODE:连接 FLASH 闪存。闪存中存储程序, ICODE 加载程序,DCODE 加载数据。
系统总线:连接 SRAM (存储程序运行时变量)、AHB 系统总线(先进高能总线,挂载最基本的或者性能较高的外设,如 RESET CLK;并通过级联连接性能较低的 APB,用于连接一些重要外设如 ADC。APB2 性能和频率高于 APB1)等。
DMA 可以处理一些辅助 CPU 的工作,如数据搬运。提高 CPU 工作效率。
小黑点代表一号引脚。
红色:电源相关引脚。
蓝色:最小系统相关引脚。
绿色: IO、功能口。
IO 口电平:IO 口最大能容忍的电压。有 FT (Five Tolerate) 的是5V,没有的是 3.3V。
主功能:基本 IO 口,未连接外设可以直接读取高低电平。
默认复用功能:连接外设驱动的功能。
重定义功能:如果想同时用一个引脚的两个功能,可以通过重定义将一个功能映射到其他引脚上。
-
VBAT:既能供电,又能作为备用电源。
-
可以作为基本的 IO 口或安全保障的侵入检测。比如产品上可以添加一些防拆触点,强行拆开就会触发侵入信号,进而清空数据。或者做 RTC 时钟相关。
-
34 做基本 IO 口或接 RTC 晶振。
-
34 做基本 IO 口或接 RTC 晶振。
-
56 接系统主晶振。一般是 8MHZ,芯片内部的锁相环电路可以使其倍频,最高 72MHZ,作为系统主时钟。
-
56 接系统主晶振。
-
NSRT 系统复位引脚,N 表示低电平复位。
-
89 是内部模拟部分的电源,如 ADC RC 振荡器用。VSSA 负极。
-
VDDA 正极。(3.3V)
-
10~19 都是 IO。10号 PA0 还兼具了 WKUP 功能,能唤醒待机状态下的 STM32。
-
IO 口或 BOOT1 引脚,BOOT 用于配置启动模式。这个是可能需要配置的 IO 口,优先级没有其他 IO 口高。
-
21 22 IO 口。
-
21 22 IO 口。
-
VSS 系统主电源口。负极。
-
VDD 系统主电源口。正极。
STM32 分区供电,有许多 VSS VDD 口。
-
25~33 IO 口。
-
34,37~40 IO 口(需要配置)或调试端口,用于调试下载程序支持 SWD JTAG 两种调试方式。
-
41-43 45-46 IO 口。
-
BOOT0.
BOOT:程序开始运行的位置。有时需要不在 flash 中开始,以完成某些特殊功能。
若想通过串口下载程序,需要设置 01。比如 34,37~40 都被占用时。或者没有 STLINK JLINK 时。
11 用于程序调试,本课程中不会用到。
要在第四个上升沿前设置 BOOT,之后就没有影响了。
最小系统电路:
主电源和模拟电源都连接了电源。
VCC GND 之间加一个滤波电容,保证电源稳定性。
VBAT 接备用电源,一般接一个 3V 纽扣电池正极即可。
晶振不必多说,如果想有 RTC 功能再加个32.768 MHZ (即 OSC32 )晶振在 34 引脚。
复位电路低电平复位,一开始电容没电,一开始就是低电平。逐渐充满电后变为高电平。或者按下按键电容放电复位。
启动配置通过跳线帽设置 BOOT。
我们的单片机实物还有一些外设:USB 接口,3.3V 恒压芯片,电源和 IO 指示灯,32.768 MHZ 晶振(黑色的)。
软件安装
安装 MDK。
KEIL5 需要安装器件支持包。没安装选择芯片型号时会找不到我们的芯片。
注册软件,和 51单片机类似的方法。
安装 STLINK 驱动。
安装 USB CH340 驱动,和 51单片机的通用。