文章目录
- 一、什么是单片机?
- 二、STM系列单片机命名规则
- 三、STM32F103C8T6单片机简介
- 四、标准库与HAL库区别
- 五、通用输入输出端口GPIO
- 六、复位和时钟控制(RCC)
- 七、时钟
- 八、中断和事件
- 九、定时器
一、什么是单片机?
-
单片机和PC电脑相比的话,相当于电脑的主板
-
单片机是一种集成电路芯片。单片机又称单片微控制器,是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。一块芯片就成了一台计算机。采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
-
烧录工具有很多种,比如:串口、J-Link、ST-Link、U-Link 等等
这里介绍STM32F103C8T6与TS-LINK串口的连接方式
- STM32----------TS-LINK串口
PA14(SWDIO)-------->SWDIO
PA13(SWCLK)------->SWCLK
GND------->GND
二、STM系列单片机命名规则
- 1、ST—代表着意法半导体公司,即由什么公司生产
意法半导体公司是一家SOC厂商,所谓SOC(System-on-a-Chip),根据它的中文意思可以知道“把系统都做在一个芯片上”, 如果在PC时代我们说一个电脑的核心是CPU,那么在智能终端时代,手机的核心就是这个SoC。
-
常见的SOC厂商有NXP(恩惠普)、飞思卡尔、苹果、三星等厂商
-
2、M— Microelectronics的缩写,表示微控制器
微控制器和微处理器的区别: -
微控制器:CPU + 片内内存 + 片内外设
-
微处理器:CPU
-
处理器通常指微处理器、微控制器和数字信号处理器这三种类型的芯片
-
微处理器(MPU)通常代表一个功能强大的CPU,但不是为任何已有的特定计算目的而设计的芯片。这种芯片往往是个人计算机和高端工作站的核心CPU。
-
中央处理器,又称为处理器,英文缩写为CPU,即Central Processing Unit,是电子计算机的主要设备之一,其功能主要是解译计算机指令以及处理计算机软件中的数据。CPU为电子计算机设计提供了基本的数字计算特性。CPU、存储设备和输入/输出设备是现代微型电脑的三大核心部件。由集成电路制造的CPU通常称为微型处理器。从20世纪70年代中期开始,单芯片微型处理器几乎取代了所有其他类型的CPU,如今CPU这个术语几乎成为了所有微型处理器的代称
-
**微控制器(MCU)**是将一个计算机集成到一个芯片中,实现嵌入式应用,故称单片机(single chip microcomputer)。随后,为了更好地满足控制领域的嵌入式应用,单片机中不断扩展一些满足控制要求的电路单元。目前,单片机已广泛称作微控制器
-
**数字信号处理器(DSP)**里的CPU是专门设计用来极快地进行离散时间信号处理计算的,比如那些需要进行音频和视频通信的场合。DSP内含乘加器,能比其它处理器更快地进行这类运算
3、32— 32bit的意思,表示这是一个32bit的微控制器
常见的8位的微控制器:51单片机、52单片机等。
常见的16位的微控制器:AVR、PIC等
三、STM32F103C8T6单片机简介
四、标准库与HAL库区别
1. 寄存器
寄存器众多,需要经常翻阅芯片手册,费时费力;
更大灵活性,可以随心所欲达到自己的目的;
深入理解单片机的运行原理,知其然更知其所以然。
2. 标准库
将寄存器底层操作都封装起来,提供一整套接口(API)供开发者调用
每款芯片都编写了一份库文件,也就是工程文件里stm32F1xx…之类的;
配置结构体变量成员就可以修改外设的配置寄存器,从而选择不同的功能;
大大降低单片机开发难度,但是在不同芯片间不方便移植。
3. HAL库
ST公司目前主力推的开发方式,新的芯片已经不再提供标准库;
为了实现在不同芯片之间移植代码;
为了兼容所有芯片,导致代码量庞大,执行效率低下
五、通用输入输出端口GPIO
1.什么是GPIO?
GPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。
简单来说我们可以控制GPIO引脚的电平变化,达到我们的各种目的。
2.命名规则
- 组编号:GPIOA, GPIOB, GPIOC, GPIOD … GPIOG
- 引脚编号:0,1,2,3,4…15
组合起来:
PA0, PA1, PA2 … PA15
PB0, PB1, PB2 … PB15
PC0, PC1, PC2 … PC15
…
有一些特殊功能的引脚是不能用作IO的。
内部框架图
下图来源于官方参考手册,了解即可
3.推挽输出与开漏输出 - 内部结构图:
- 推挽输出: 可以真正能真正的输出高电平和低电平
- 开漏输出: 开漏输出无法真正输出高电平,即高电平时没有驱动能力,需要借助外部上拉电阻完成对外驱动
六、复位和时钟控制(RCC)
系统复位
当发生以下任一事件时,产生一个系统复位:
- NRST引脚上的低电平(外部复位)
- 窗口看门狗计数终止(WWDG复位)
- 独立看门狗计数终止(IWDG复位)
- 软件复位(SW复位)
- 低功耗管理复位
电源复位
当以下事件中之一发生时,产生电源复位:
- 上电/掉电复位(POR/PDR复位)
- 从待机模式中返回
备份区复位
备份区域拥有两个专门的复位,它们只影响备份区域。
当以下事件中之一发生时,产生备份区域复位。
- 软件复位,备份区域复位可由设置备份域控制寄存器 (RCC_BDCR)中的BDRST位产生。
- 在VDD和VBAT两者掉电的前提下,VDD或VBAT上电将引发备份区域复位
七、时钟
1.什么是时钟?
时钟就像一个开关,时钟打开,对应的设备才会工作
2.时钟来源:
三种不同的时钟源可被用来驱动系统时钟(SYSCLK)
HSI振荡器时钟(高速内部时钟)
HSE振荡器时钟(高速外部时钟)
PLL时钟(锁相环倍频时钟)
3.二级时钟源:
- 40kHz低速内部RC(LSIRC)振荡器
32.768kHz低速外部晶体(LSE晶体)
如何使用CubeMX配置时钟
八、中断和事件
1.什么是中断?
中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行
2.什么是优先级?
当有多个中断同时发生时,应该优先处理哪个中断呢?我们可以给每个中断定义一个优先级,告诉系统优先处理优先级较高的中断,延后处理优先级较低的中断
3.抢占优先级和响应优先级的区别:
- 高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。
- 抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断。
- 抢占优先级相同的中断,当两个中断同时发生的情况下,哪个响应优先级高,哪个先执行。
- 如果两个中断的抢占优先级和响应优先级都是一样的话,则看哪个中断先发生就先执行
4.什么是优先级分组?
Cortex-M3允许具有较少中断源时使用较少的寄存器位指定中断源的优先级,因此STM32把
指定中断优先级的寄存器位减少到4位,这4个寄存器位的分组方式如下:
第0组:所有4位用于指定响应优先级
第1组:最高1位用于指定抢占式优先级,最低3位用于指定响应优先级
第2组:最高2位用于指定抢占式优先级,最低2位用于指定响应优先级
第3组:最高3位用于指定抢占式优先级,最低1位用于指定响应优先级
第4组:所有4位用于指定抢占式优先级
5.什么是EXTI?
- 外部中断/事件控制器(EXTI)管理了控制器的 23 个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。 EXTI 可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。
- EXTI 可分为两大部分功能,一个是产生中断,另一个是产生事件,这两个功能从硬件上就有所不同。
- 产生中断线路目的是把输入信号输入到 NVIC,进一步会运行中断服务函数,实现功能,这样是软件级的。而产生事件线路目的就是传输一个脉冲信号给其他外设使用,并且是电路级别的信号传输,属于硬件级的
6.什么是NVIC?
- STM32通过中断控制器NVIC(Nested Vectored Interrupt Controller)进行中断的管理 。NVIC是属于Cortex内核的器件,不可屏蔽中断(NMI)和外部中断都由它来处理,但是SYSTICK不是由NVIC控制的
7.什么是中断向量表?
- 每个中断源都有对应的处理程序,这个处理程序称为中断服务程序,其入口地址称为中断向量。所有中断的中断服务程序入口地址构成一个表,称为中断向量表;也有的机器把中断服务程序入口的跳转指令构成一张表,称为中断向量跳转表
九、定时器
1.定时器工作原理:
使用精准的时基,通过硬件的方式,实现定时功能。定时器核心就是计数器
2.定时器分类:
基本定时器(TIM6~TIM7)
通用定时器(TIM2~TIM5)
高级定时器(TIM1和TIM8)
3.通用定时器介绍:
(1)16 位向上、向下、向上/向下自动装载计数器(TIMx_CNT)
(2)16 位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数为 1~65535 之间的任意数值
(3)4 个独立通道(TIMx_CH1~4),这些通道可以用来作为:
A.输入捕获
B.输出比较
C.PWM 生成(边缘或中间对齐模式)
D.单脉冲模式输出
(4)可使用外部信号(TIMx_ETR)控制定时器和定时器互连(可以用 1 个定时器控制另外一个定时器)的同步电路。
(5)如下事件发生时产生中断/DMA:
A.更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)
B.触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)
C.输入捕获
D.输出比较
E.支持针对定位的增量(正交)编码器和霍尔传感器电路
F.触发输入作为外部时钟或者按周期的电流管理
4.定时器计数模式:
5.定时器时钟源:
定时器溢出时间计算公式: