毕竟是从零开始的小白,第一次学习STM32还是得从最基础的概念开始学起。
1.1 Cortex-M4 介绍
M代表什么意思:M0 M3 M4 M7内核,从小到大按照性能排序
1.1.1 何谓单片机
单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写“MCU”表示单片机 。实际上,单片机是一种集成电路芯片(硅片),是采用超大规模集成电路技术把具有数据处理能力的中央处理器FPU(CPU)、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路(F429)、脉宽调制电路PWM、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
我这边就挑一些我自己认为比较重点的来讲
中央处理器FPU(CPU):处理数据、进行浮点运算
随机存储器RAM:实时处理数据,一般用来保存变量、数组等需要修改
*随机存储器在程序运行的过程中可以改变,但数据断电丢失
只读存储器ROM:一般用来保存一些不需要经常修改数据,比如程序、图片、文字等
*只读存储器在程序运行的过程中不可以改变,但数据断电不丢失
多种I/O口:I/O口 I:Input 输入 O:Ouput 输出
中断系统:在单片机中非常重要
特性:实时性
利用中断:利用中断我们可以做到两个LED灯同时跑
LED1 500ms闪烁 LED2 1s闪烁
作用:分配CPU立刻去处理紧急(异常)事件
定时器:重要
基本定时器:
①起到计数、延时功能;②作为DAC外部触发
通用定时器:
①完美继承基本定时器的所有功能;
②输出比较功能:输出一段有规律的波形(PWM波):控制LED亮度、控制电机转速、舵机转向等
③输入捕获功能:当检测到外界边沿变化,接收外界过来的波形:红外编码、超声波测距、获取按键时长等等
高级定时器:
①完美继承基本定时器和通用定时器的所有功能;
②增加了死区和刹车 --- 针对电机驱动
系统滴答定时器:
用来计数、延时;其实可以利用系统滴答提供时基(实时操作系统)
看门狗:
检测程序是否正常运行,如程序异常则产生复位
如果程序运行正常的话,在规定时间内进行喂狗,则单片机不会产生复位
RTC:实时时钟 --- 日历、闹钟
ADC:模数转换器
1.2 单片机类型
①51单片机: intel的51内核(8位) 入门
51单片机是指intel开发的8051单片机的内核,“8051”有个51,所以凡事与8051内核一样单片机都统称为51系列单片机
8位单片机 -----STC89C、AT89C\P89V、STM8等
宏晶、合泰、松翰等
②ARM内核:ARM公司开发内核 ARM-M --- 智能产品 进阶
32位单片机
----ST(意法半导体) STM32F1 (M3系列)
STM32F4 (M4系列) M7 M0 M0 M3 M4 M7
AT 、新唐等
STM32 、AT91S等 GD32 NXP GD国产
③嵌入式内核: ARM-A --- A72 --- 消费级市场(广告机、监控机、手机) --- 强大 消费领域(手机、平板、广告机)
32位或者64位内核 ---- 寻址能力、寄存器存储空间大小
---高通、联发科、苹果、三星、华为等
驱动 (底层开发) 应用(上位机、功能开发)
8位、32位、64位:代表硬件的寻址能力
1.3 Cortex-M4单片机最小系统
单片机最小系统:指的是单片机能正常工作的最基本条件也是必要条件
32位单片机:电源电路、震荡电路、复位电路、启动电路(决定STM32进入哪一个部分去运行程序)
1.3.1 电源电路
作用:供电 STM32供电 3.3V51供电5V
1.3.2 振荡电路(心跳)
因为单片机都需要连续的脉冲信号才能正常工作。(稳定)
①:外接晶振
STM32里面:
外部高速晶振: 8Mhz 12Mhz 25Mhz
外部低速晶振: 32.768Khz
②:内部RC震荡电路
单片机内部震荡源
缺点:RC震荡源偏频很大 频率:40Khz左右 30Khz - 60Khz 看门狗(不需要那么准确)
1.3.3 复位电路
复位作用:重启单片机,程序重新跑
复位方式:硬件复位(按键复位)、上电复位、软件复位(用代码复位)、看门狗复位:放止单片机跑飞
1.3.4 自举模式电路(启动方式)
通过自举电路切换下载程序方式:①调试器下载 ②串口下载
当BOOT0:0 BOOT1:0,程序在主FLASH启动,正常启动程序 用下载器直接进行下载
当BOOT0:1 BOOT1:0,程序在系统存储器启动(Serial BootLoader模式),串口进行下载程序,保存FLASH(当我们的下载器突然有问题时可以使用这种方法--关键时候可能会救你一命)
当BOOT0:1 BOOT1:1,嵌入式SRAM模式,一般使用来调试设备,结合JTAG和SW来调试
1.4 认识M4单片机之STM32F407VET6
我现在用的板子是STM32F407VET6,所以就拿这块板子来讲
我们从三个概念来描述这款单片机1、含义 2、规格 3、参数
1.4.1 STM32F407VET6命名含义
ARM架构:ARM公司名,生成设计框架,授权给半导体厂商 ARM V9架构
ST:意法半导体公司,依赖ARM的架构去生产芯片
半导体公司:ST、联发科、海思、华为
ARM:架构产品分为三类
A系列:高端电子消费产品 平板(A72) --- LINUX A系列芯片 A72等
R系列:军工系列 --- 国外
M系列:智能产品….M0 M3 M4 M7 性能从低到高
M3:STM32F/H/L103…. 105…. 107…..
M4:STM32F/H/L407…. 405….. 411…. 415…….
M7:STM32F/H767….. 743….
涉及到芯片的规格和参数,开发者需要借助芯片手册(这点非常重要)
1.4.2 STM32F407VET6规格和参数
问:为什么我需要看这些参数?
答:因为开发之前需要根据芯片参数和规则,来决定是否使用此芯片
1.4.3 M4单片机结构框架
以上就是我对单片机的一点拙见,由于我现在用的板子是STM32F407VET6,所以后面的代码和图片都是基于这块板子的。后面会继续更新相关我的STM32的学习之路。