赞
踩
ST:ST公司;
M:Microcontroller(微控制器MCU,单片机);
32:32位单片机;
内核:ARM Cortex-M,程序指令的执行、加减乘除,相当于芯片CPU
*ST公司拿着ARM公司的内核,完善外围电路,封装起来成了STM32
*以ARM为内核的芯片称为基于ARM内核的单片机
智能车:用STM32做寻迹小车,读取光电传感器或摄像头数据,然后驱动电机前进和转弯;
无人机:STM32读取陀螺仪加速度计的姿态数据,然后根据控制算法去控制电机的速度,从而保证飞机稳定飞行;
机器人:STM32控制舵机来控制机器人的关节,让机器人运动;
无线通信:给STM32接上2.4G无线模块或者蓝牙、WIFI模块;
物联网:借助无线通信模块通信,比如蓝牙、WIFI、ZigBee,再通过STM32驱动继电器控制220V电路的通断;
工业控制:PLC主控有STM32;
娱乐电子产品
STM32家族
通过程序配置外设到达想要的功能
下面两个是位于Cortex-M3内核里面的外设,其余的则位于内核外
NVIC | 嵌套向量中断控制器 |
管理中断,如配置中断优先级
SysTick | 系统滴答定时器 |
内核里的定时器,给操作系统提供定时服务,完成delay函数
STM32可以加入操作系统如FreeRTOS,UCOS等,如果用了这些操作系统,就需SysTick提供定时来进行任务切换功能
RCC | 复位和时钟控制 |
对系统的时钟进行配置,使能各模块的时钟。STM32中,其他外设上电情况下默认为了降低功耗没有时钟。不给时钟的情况下,操作外设是无效的,外设也不会工作。所以操作外设之前,应使能时钟。RCC来完成时钟的使能
GPIO | 通用IO口 |
用来点灯读取按键等
AFIO | 复用IO口 |
复用端口的重定义,还有中断端口的配置
EXTI | 外部中断 |
配置好外部中断后,就可以触发中断,让CPU来处理任务
TIM | 定时器 |
整个STM32最常用、功能最多的外设
分为高级定时器(最复杂)、通用定时器(最常用)、基本定时器三种类型
可完成定时中断的任务,测频率,生成PWM波形,配置成专用编码器接口等功能
生成PWM波形是电机驱动、舵机驱动的最基本要求
ADC | 模数转换器 |
STM32内置了12位的AD转换器,可以直接读取IO口的模拟电压值,无需外部连接AD芯片
DMA | 直接内存访问 |
帮助CPU完成搬运大量数据这样繁杂的任务
USART | 同步/异步串口通信 |
UART异步串口
I2C | I2C通信 |
SPI | SPI通信 |
非常常用的两个通信协议,STM32内置了它们的控制器,可以用硬件输出时序波形
通用IO口模拟时序波形也可
CAN | CAN通信 |
通信协议,多用于汽车领域
USB | USB通信 |
通信协议,可用STM32的USB外设做一个模拟鼠标、模拟U盘等设备
RTC | 实时时钟 |
实时时钟,在STM32内部完成年月日、时分秒等计算功能,可接外部备用电池,即使掉电也可以正常使用
CRC | CRC校验 |
一种数据的校验方式,用来判断数据的正确性
PWR | 电源控制 |
可让芯片进入睡眠模式等状态,达到省电的目的
BKP | 备份寄存器 |
这是一段存储器,当系统掉电时,仍可由备用电池保持数据。根据需要还可以完成一些特殊功能。
IWDG | 独立看门狗 |
WWDG | 窗口看门狗 |
当单片机因为电磁干扰四级或者程序设计不合理出现死循环时,看门狗可以及时复位芯片,保证系统稳定
DAC | 数模转换器 |
在IO口直接输出模拟电压,是ADC模数转换的逆过程
SDIO | SD卡接口 |
SD卡是接口,可以用来读取SD卡
FSMC | 可变静态存储控制器 |
可变静态存储控制器,可以用来拓展内存,或者配置成其他总线协议,用于某些硬件操作
USB OTG | USB主机接口 |
用OTG功能,可以让STM32作为USB主机去读取其他USB设备
总览
英文缩写 | 名称 | 英文缩写 | 名称 |
NVIC | 嵌套向量中断控制器 | CAN | CAN通信 |
SysTick | 系统滴答定时器 | USB | USB通信 |
RCC | 复位和时钟控制 | RTC | 实时时钟 |
GPIO | 通用IO口 | CRC | CRC校验 |
AFIO | 复用IO口 | PWR | 电源控制 |
EXTI | 外部中断 | BKP | 备份寄存器 |
TIM | 定时器 | IWDG | 独立看门狗 |
ADC | 模数转换器 | WWDG | 窗口看门狗 |
DMA | 直接内存访问 | DAC | 数模转换器 |
USART | 同步/异步串口通信 | SDIO | SD卡接口 |
I2C | I2C通信 | FSMC | 可变静态存储控制器 |
SPI | SPI通信 | USB OTG | USB主机接口 |
芯片命名规则
芯片的系统结构
芯片的引脚定义(数据手册上整理而来)
依次来看引脚定义
1.VBAT,备用电池供电的引脚,这个引脚可以接个3V的电池,当系统电源断电时,备用电池可以给内部的RTC时钟和大部分寄存器提供电源
2.号引脚是IO口或者侵入检测或者RTC,IO口可以根据程序输出或读取高低电平,是最基本也是最常用的功能,侵入检测可以用来做安全保障的功能(eg:产品的安全性较高,可以在外壳加一些防拆的触点,然后接上电路到这个引脚上,若有人强行拆开设备,那触点断开,这个引脚电平变化,就会触发STM32的侵入信号,然后就会清空数据来保障安全),RTC引脚可以用来输出RTC校准时钟、RTC闹钟脉冲或者秒脉冲
3.4.号是IO口或者接32.768KHz的RTC晶振
5.6.号引脚接系统的主晶振,一般是8MHz,芯片内部有锁相环电路,可以对这个8MHz的频率进行倍频最终产生72MHz的频率,作为系统的主时钟
7.号NRST是系统复位引脚,N代表它是低电平复位的
8.9.号引脚是内部模拟部分的电源,比如ADC、RC震荡器等,VSS是负极接GND,VDD是正极接3.3V
10~19号引脚是IO口,PA0兼具WKUP的功能,这个可以用于唤醒处于待机模式的STM32
20.号引脚是IO口或者BOOT1引脚,BOOT引脚是用来配置启动模式的
*推荐使用上表加粗的IO口,没有加粗的IO口可能需要配置,或者兼具其他功能
21.22.号都是IO口
23.24.35.36.47.48.号的VSS_1/_2/_3和VDD_1/_2/_3是系统的主电源口,同样的VSS是正极、VDD是负极
*STM32内部采用了分区供电的方式,所以供电口会比较多,在使用时,把VSS都接GND,VDD都接3.3V即可
25~33.号都是IO口
34.37~40.号是IO口或者调试端口,调试端口是用来调试程序和下载程序的,这个STM32支持SWD和JTAG的两种调试方式。SWD需要两根线,分别是SWDIO和SWCLK;JTAG需要5根线,分别是JTMS、JTCK、JTDI、JTDO、NJTRST。使用STLINK下载调试程序,STLINK采用的是SWD的方式,所以只需占用PA13和PA14两个IO口,在使用SWD的调试方式时,剩下的PA15、PB3、PB4可以切换成为普通的IO口来使用,但需要在程序中配置
41~43.号,45~46号都是IO口
44.号BOOT0,用来做启动配置的
STM32启动配置
*什么时候用到串口下载?把34.37~40号五个调试端口全部配置成了IO口,无法下载程序,这时使用串口下载;或者没有STLINK,也没有JLINK,那就可以用串口进行下载程序
单片机只有一个芯片是无法工作的,为其连接最基本的电路,这些最基本的电路称为最小系统电路
最小系统电路
跳线帽
STM32F103C8T6核心板原理图背面
*以上是最基本的STM32的介绍,想要学好STM32还需阅读官方详细介绍
自己在概念上的一些疑惑,通过搜索画了一张思维导图理解
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。