1.stm32
主频:72MKHz
RAM:20K(SRAM)
ROM:64K(Flash)
供电:2.0~3.6V(标准3.3V)
(如果使用5V进行供电则,需要一个稳压芯片,将电压降到3.3V再进行使用)
2.STM32芯片—片上资源(外设)
NVIC 嵌套向量中断控制器:配置优先级不同的中断
SysTick 系统滴答定时器:给操作系统提供定时服务(操作系统:Freertos,UCOS)如果有操作系统,就需要SysTick进行定时来进行任务切换!(可以用这个定时器完成Delay函数的功能)
上述两个是在ARM内核里面的
RCC 复位和时钟控制:对系统的时钟进行控制,使能各模块的时钟。在STM32中其他的外设在上电的时候,默认是没有时钟的;不给时钟的情况下,操作外设是无效的(外设不会操作,降低功耗),我们通过RCC,给这些外设时钟使能,从而操作外设。
GPIO 通用的IO口
AFIO 复用IO口:完成复用功能端口的重定义,还有中断端口的配置
EXTI 外部中断:我们通过配置外部中断,当外部中断引脚有变化(低电平触发,下降沿触发)就可以触发中断,进行操作!
TIM 定时器:高级定时器,通用定时器,基本定时器
通用定时器:中断任务,测频率,生成PWM波形,配置成专用的编码器接口等功能(舵机驱动)
ADC 模数转换器:内置12位的AD转换器(模拟信号分成2^12次方进行分割):IO口可以直接读取IO口的模拟电压值,无需外部连接AD芯片,使用方便。
DMA 直接内存访问:帮助CPU完成搬运大量数据的繁杂任务
USART 同步/异步串口通信:支持异步或者同步串口(异步串口用的多)
I2C通信协议
SPI通信协议
上述的通信协议,STM32内置了控制器,可以用硬件来输出时序波形,使用更高效;也可以通过编码,就像之前一样进行时序的模拟。
CAN通信:用于汽车领域
USB通信:模拟鼠标,模拟通信
RTC 实时时钟:进行时钟显示,可以接备用电池,掉电不丢失,进行进行时钟功能
CRC校验 :数据校验
PWR电源控制:可以让芯片进入睡眠模式,达到省电作用
BKP 备份存储器:是存储器;当系统掉电时,仍可由备用电池保持数据
IWDG 独立看门狗
WWDG 窗口看门狗
上述:当单片机因为电磁干扰死机或者程序设计不合理出现死循环时,看门狗可以及时复位芯片,保证系统的稳定。
DAC 数模转换器:可以在IO口直接输出模拟电压(光敏传感器,温度传感器)
SDIO SD卡接口:读取SD存储卡
FSMC 可变静态存储控制器:可以用于扩展内存或者配置成其他总线协议,用于某些硬件操作
USB OTG USB主机接口:可以让STM32作为USB主机读取其他USB设备
我们所使用的芯片:没有后面四个外设
STM32F103C8T6
STM32:基于ARM内核的32位微控制器
F:通用类型
103:产品子系列的增强型
C:引脚个数是48
8:闪存(Falsh)64K
T:封装是LQFP
6:温度范围:-40℃~85℃
AHB 先进高性能总线:挂载最基本的或者性能比较高的外设:RCC(复位和时钟控制)SDIO
AHB和APB的总线协议,总线速度和数据传输格式的差异,需要通过 桥接 来完成数据的转换和缓存
AHB的总体性能比APB高一些
APB:APB2性能比APB1高;APB2一般和AHB同频率:72KHz;APB1:36KHz
APB1:连接一般外设
APB2:连接较为重要的外设
APB2和APB1挂载的外设不一样
DMA:CPU小秘书,搬运数据,反复
DAM:可以拥有和CPU一样的总线控制权,用于访问外设小弟;当需要DMA搬运数据时,外设小弟就会通过请求线发送DMA请求,然后DMA获得总线控制权,对请求的外设小弟进行数据搬运!!(整个过程不需要CPU参与)
STM32:分区供电
在VDD和VSS之间会连接一个滤波电容,保证供电电压稳定(不够就补全)
VBAT接备用电池:3V的纽扣电池,正极接VBAT,负极接GND
备用电池:给RTC实时时钟和备份寄存器服务的
晶振:8KHz,内部通过锁相环倍频,得到72KHz的主频
如何需要RTC实时时钟功能:需要再接32.768KHz的晶振(3,4引脚)(32.768KHz是2^15次方,通过电路的2^15次方分频,就可以生成1s的时间信号,从而完成实时时钟)
复位电路:低电平复位,按下按键的时候,被拉到最低(电容也放电),是低电平进行复位,然后电容逐渐充满,低电平到逐渐高电平;低电平进行复位。
开发方式:
1.基于寄存器:直接通过编码进行配置寄存器,实现功能(最直接,最底层,效率高)
(STM32结构复杂,寄存器太多,直接配置寄存器不现实)
2.基于库函数(标准库):使用ST官方提供的封装好的函数,通过调用这些函数来间接配置寄存器
(STM寄存器封装很好,开发比较有利)
3.基于HAL库:可以用图形化界面快速配置STM32
stm32f10x.h文件是描述STM32外设对应的具体硬件地址,和51的必要头文件一样
system_stm32f10x.c和system_stm32f10x.h文件是配置时钟;STM32主频72KHz,就是system文件里面函数配置的。
内核寄存器描述文件:core_cm3.c和core_cm3.h
启动文件选择:后缀位md.s的文件