文章目录
- 1. STM32那些事儿
- 2. 硬——STM32硬件电路设计
- 3. 软——STM32编程
- 4. 开始——STM32起步
- 必备软件:
- 资料:
- 拓展学习:
1. STM32那些事儿
STM32系列专为要求高性能、低成本、低功耗的嵌入式应用设计的ARM Cortex®-M0,M0+,M3, M4和M7内核,按内核架构分为不同产品:主流产品(STM32F0、STM32F1、STM32F3)、超低功耗产品(STM32L0、STM32L1、STM32L4、STM32L4+)、高性能产品(STM32F2、STM32F4、STM32F7、STM32H7)。
命名规则:
STM32型号的说明:以STM32F103RBT6这个型号的芯片为例,该型号的组成为7个部分,其命名规则如下:
以上参考自百度百科 STM32词条
概括一下我没有摘录的部分,就是STM32有着各种优势,是从事嵌入式行业的朋友的好伙伴。以我作为一个电子系学生的经验,主要用到的就是F1和F4,后者较前者的区别就是多了一个FPU (Float Point Unit,浮点运算单元) 处理浮点数的速度也就会更快。
2. 硬——STM32硬件电路设计
STM32的大体情况了解完了之后,那么就是了解如何设计一块STM32的板子,虽然说,市面上的成品的开发板五花八门,实际做项目用的核心板也算价格良心。但是,仅仅只会编程可不行,最基础的硬件电路也需要我们了解。
不作复杂的要求,最基础的最小系统板,起码应该知道它的组成部分,能自己动手画一个那就更棒了!
说到单片机的最小系统,这个可以说是电子行业的常识性问题了,必须得知道。
这里以51单片机为例:那就是 单片机、电源电路、时钟电路以及复位电路。
单片机是一种集成电路芯片。它采用超大规模技术将具有数据处理能力的微处理器(CPU)、存储器(含程序存储器ROM和数据存储器RAM)、输入、输出接口电路(I/O接口)集成在同一块芯片上,构成一个即小巧又很完善的计算机硬件系统,在单片机程序的控制下能准确、迅速、高效地完成程序设计者事先规定的任务。所以说,一片单片机芯片就具有了组成计算机的全部功能。
复位电路:由电容串联电阻构成,由图并结合“电容电压不能突变”的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定。典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位。
时钟电路:单片机外部接上振荡器(也可以是内部振荡器)提供高频脉冲经过分频处理后,成为单片机内部时钟信号,作为片内各部件协调工作的控制信号。作用是来配合外部晶体实现振荡的电路,这样可以为单片机提供运行时钟。以MCS一5l单片机为例随明:MCS一51单片机为12个时钟周期执行一条指令。也就是说单片机运行一条指令,必须要用12个时钟周期。没有这个时钟,单片机就跑不起来了,也没有办法定时和进行和时间有关的操作。
时钟电路是微型计算机的心脏,它控制着计算机的二个节奏。CPU就是通过复杂的时序电路完成不同的指令功能的。
电源电路:用于给单片机供电,一个稳定的电源是单片机正常工作的前提,因此,单片机附近经常会有电容用于滤波。
再附上一个STM32单片机的最小系统;在这先埋一个伏笔。
当然了,对于PCB绘制有兴趣的也可以参照我的这几篇博客:
Altium designer学习(一)AD画板流程总结
Altium designer学习(二)pcb库不求人——立创商城导出封装库
3. 软——STM32编程
STM32单片机的成功,和ST的软件生态也是有很大关系的。
早期的STM32编程主要以库函数(标准固件库)和寄存器两种方式进行的。库函数编程比较方便,调用ST官方提供的函数,即可完成相应功能,效率也还可以接受。寄存器方式则是直接操作STM32的相应寄存器的数据,效率极高,但是难度也很大,编程时需要查阅芯片参考手册,多用于嵌入式老手。但随着单片机性能的不断提升,对于效率又不太看重,所以,很多人基本就是选择库函数了。
后来,ST为了降低编程的门槛,推出了HAL库,Hardware Abstraction Layer(硬件抽象层),说白了就是减少硬件细节,提高移植性,降低编程门槛。又配合STM32CUBEMX软件,直接就可以初始化一个工程。大大降低编程难度,本次教程就是介绍 :HAL库配合CUBEMX配置一些常用外设的初始化,直观感受STM32编程,用最短时间入门STM32。
硬件抽象层 : 是位于操作系统 内核与硬件电路之间的接口层,其目的在于将硬件抽象化。它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。 从软硬件测试的角度来看,软硬件的测试工作都可分别基于硬件抽象层来完成,使得软硬件测试工作的并行进行成为可能。
当然了,HAL库虽然简单直观,但我们也不能忽视硬件底层的学习,不能不求甚解。
4. 开始——STM32起步
照例放篇博客: https://blog.csdn.net/lalala12ll/article/details/107371982
必备软件:
- STM32CUBEMX(配置stm32初始化工程)
- MDK Keil(编程、调试软件)
- 串口调试助手(调试软件)
- 驱动软件:Jlink 、STlink 驱动(调试器) ; CH340驱动(串口通信)
在这里推荐一个不限速下载站,电子系用到的
资料:
- 例程 (正点原子 提供标准库、寄存器例程、课程及资料)
- STM32芯片手册(正点原子资料盘>STM32参考资料)
- Cortex M3权威指南(中文) (极其推荐阅读)
- CUBEMX教程 :微雪电子:https://www.waveshare.net/study/portal.php?mod=list&catid=38&page=3
拓展学习:
- RTOS操作系统:freertos、RT Thread 等等
- STM32LL库 寄存器延伸
- QT