一.、实验器材介绍
二、STM32简介
1. STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器。
(1)ST,指ST公司(意法半导体);
(2)M,MicroController 微控制器(MCU,MicroController Unit 微控制器单元/单片机);
(3)32,32位的单片机;
表示CPU一次可以处理32位数据宽度,即4个字节(现在电脑大多数都是64位);
这也决定了CPU能直接处理的最大内存地址空间是2^32字节(4GB),也意味着32位CPU最多只能利用4GB的RAM,即使物理上安装了更多的内存,也无法全部访问;
(4)ARM Cortex-M内核,即STM32的内部核心部分(包括CPU),由ARM公司设计的;
ARM公司设计内核,芯片厂商完善外围电路,生产芯片。这些芯片,都叫做基于arm内核的芯片
2.STM32在嵌入式领域的应用
(1)智能车,例如寻迹小车:读取光电传感器或者摄像头的数据,然后驱动电机前进和转弯;
(2)无人机:读取陀螺仪加速度计的姿态数据,根据控制算法去控制电机的速度,从而保证飞机稳定飞行;
(3)机器人:驱动舵机来控制机器人的关节,让机器人运动;
(4)无线通信/物联网:连接2.4G、蓝牙、WiFi、Zigebee、4G等无线通信模块;
(5)工业控制:PLC,Programmable Logic Controller,可编程逻辑控制器,一种数字运算操作的电子系统,专为工业环境应用而设计。被广泛应用于制造业和过程工业中,用来自动化控制机械流程和设备;
(6)娱乐电子产品:穿戴电子产品、玩具;
3.STM32功能强大、性能优异、片上资源丰富、功耗低、是一款经典的嵌入式微控制器
4.STM32系列产品
5.ARM介绍
(1)ARM既指ARM公司,也指ARM处理器内核;
(2)ARM公司是全球领先的半导体知识产权(IP,intellectual property,知识产权)提供商,即只设计芯片,不生产芯片。全世界超过95%的智能手机和平板电脑都采用ARM架构;
(3)ARM公司设计ARM内核,半导体厂商完善内核周边电路并生产芯片;
(4)ARM系列内核
6.课程使用的STM32(STM32F103C8T6)芯片介绍
(1)参数介绍
a.系列:STM32F1主流系列;
b.内核:ARM Cortex-M3内核;
c.主频:最大72MHz;
d.RAM(运行内存):20K(实际存储介质:SRAM);
e.ROM(程序存储器):64K(实际存储介质:Flash);
f.供电电压:2.0~3.6V(标准3.3V)【注意:USB输出电压是5V,不能直接给STM32供电,需要加一个稳压芯片,把电压降到3.3V,再给STM32供电】
g.封装:LQFP48,共48个引脚,如下图所示:
(2)STM32的片上资源/外设(Peripheral)(通过查看对应数据手册来看该芯片有哪些外设)
片上外设/片内外设:芯片内部的外设;
片外外设:芯片外部的外设;
a. NVIC,Nested Vectored Interrupt Controller,嵌套向量中控制器。内核里用于管理中断的设备,比如配置中断优先级等。
b.SysTick,系统滴答定时器。主要用来给操作系统提供定时服务的。STM32可以加入Free RTOS、RT-Thread、Ucos等实时操作系统,当加入这些操作系统时就需要SysTick提供定时来进行任务切换的功能。
c.RCC,Reset and Clock Control,复位和时钟控制。 STM32中其他的外设在上电后默认是不开启时钟的,此时操作外设是无效的(这样能降低功耗,所以在使用外设之前,需要先用RCC开启对应的时钟)。
d.GPIO, General-purpose I/O,通用IO(Input/Output,输入/输出)。可以用来电灯和读取按键。
e.AFIO,Alternate functions I/O, 复用IO。用来完成复用端口的重定义和中断端口的配置。
f. EXTI,External Interrupt ,外部中断。配置好外部中断后,当引脚的电平按照中断触发条件变化时,就会触发中断,来让CPU处理对应的情况。
g.TIM,Timer,定时器。STM32中最常用,功能最多的外设,分为基本定时器、通用定时器和高级定时器三种类型。高级定时器最复杂,通用定时最常用。这两种定时器都可以完成定时中断、测频率、生成PWM波形、配置成专用的编码器接口等功能。
h.ADC, Analog to Digital Converter,模数转换器。STM32内置了12位的ADC,可以直接读取IO口的模拟电压值,无需外部连接ADC芯片。
i.DMA,Direct Memory Access,直接内存访问。可以帮助CPU完成搬运大量数据的繁杂任务。
j.USART,Universal Synchronous Asynchronous Receiver Transmitter,通用同步异步收发器。既支持同步串口也支持异步串口,实际中使用异步串口比较多。
k.I2C,Inter-Integrated Circuit,集成电路间通信。实现集成电路(IC/芯片)间以半双工串行方式通信的设备。
l.SPI,Serial Peripheral Interface,串行外设接口。实现集成电路(IC/芯片)间以全双工串行方式通信的设备。
m. CAN,Controller Area Network,控制器局域网。一般用于汽车领域。
n.USB,Universal Serial Bus,通用串行总线。可以用该设备做一个模拟鼠标、模拟U盘等设备。
o. RTC,Real Time Clock,实时时钟。实现年月日、时分秒的计时功能。需要接外部电池,即使掉电也能正常运行。
p. CRC,Cyclic Redundancy Check,循环冗余校验。一种数据校验的方式,来判断数据的正确性。
q.PWR, Power Control, 功率控制。可以让芯片进入睡眠模式等状态,来实现省电/低功耗的目的.
r. BKP, Bakup registers,备份寄存器。一段存储器,当系统掉电时,这段存储器由备用电池供电,保持数据。
s. IWDG,Independent WatchDog,独立看门狗。
t. WWDG,Window WatchDog,窗口看门狗。
当单片机因为程序干扰死机或程序设计不合理出现死循环时,看门狗可以及时复位新芯片,保证系统的稳定。
u. DAC,Digital-to-Analog Converter,数模转换器。可以在IO口直接输出模拟电压。
v.SDIO,Secure digital input/output interface,安全数据输入/输出接口,即SD卡接口。可以用来读取SD卡。
w.FSMC, Flexible static memory controller, 可变静态存储控制器。用于扩展内存或配置成其他总线协议,来操作某些硬件。
x. USB OTG,USB On-The-GO,USB主机接口。一种USB接口标准,允许设备在不需要计算机的情况下直接连接和交换数据。即可以让STM32作为主机去读取其他USB设备。