赞
踩
课程:江协科技【STM32入门教程-2023版 细致讲解 中文字幕】
https://www.bilibili.com/video/BV1th411z7sn?p=2&vd_source=fab7812fb8151b8746298fcfc057dbf4
高性能版本 |
---|
主流版本 |
低能耗版本 |
无线版本 |
片上资源又叫做外设,英文是peripheral,下面这个表里就是STM32F1系列的外设资源。
我们主要学习的就是STM32的外设,通过程序配置外设来完成我们想要的功能。在这个表中,前两个深颜色的是位于杠M3内核里面的外设,剩下的都是内和外的外设。
NVIC(嵌套向量中断控制器)
这个是内核里面用于管理中断的设备,比如配置中断优先级这些东西。
SysTick(系统滴答定时器)
这个是内核里面的一个定时器,主要用来给操作系统提供定时服务的。STM32是可以加入操作系统的,比如freertos UCOS等啊,如果用了这些操作系统,又需要SysTick提供定时,来进行任务切换的功能。这个我们可以用这个定时器来完成延时函数的功能。
(RCC是复位和时钟控制)
这个可以对系统的时钟进行配置,还有就是使能各模块的时钟。在STM32中,其他的这些外设在上电的情况下默认是没有时钟的,不给时钟的情况下操作外设是无效的,外设也不会工作,这样的目的是降低功耗。所以在操作外设之前必须要先使能它的时钟,这就需要我们用RCC来完成始终的使能。
GPIO(通用IO口)
我们可以用GPIO来点灯、读取按键等,这也是一个单片机最基本的功能。
AFIO(复用IO口)
它可以完成复用功能端口的重定义,还有中断端口的配置。
EXTI(外部中断)
配置好外部中断后,当引脚有电平变化时,就可以触发中断,让CPU来处理任务。
TIM(定时器)
这也是整个STM32最常用、功能最多的外设。TIM分为高级定时器、通用定时器、基本定时器三种类型,其中高级定时器最为复杂。常用的是通用定时器,这个定时器不仅可以完成定时中断的任务,还可以完成测频率、生成PWM波形,配置成专用的编码器接口等功能,像PWM波形就是我们电机驱动、舵机驱动最基本的要求了。
ADC(模数转换器)
这个STM32内置的12位的AD转换器可以直接读取IO口的模拟电压值,无需外部连接AD芯片使用,非常方便。
DMA(直接内存访问)
这个可以帮助CPU完成搬运大量数据这样的繁杂任务。
USART(同步或异步串口)
我们平时用的UART是异步串口的意思,这里的USART是既支持异步串口,也支持同步串口。当然我们实际还是用异步串口比较多。
IIC和SPI
是非常常用的两种通信协议,STM32也内置了它们的控制器,可以用硬件来输出时序波形,使用起来更高效。当然用通用IO口来模拟时序波形也是没有问题的。
CAN和USB通信协议
CAN通信一般用于汽车领域,USB我就不用多说了吧。生活中到处都是USB设备,利用STM32的USB外设,可以做一个模拟鼠标、模拟U盘等设备。
RTC实时时钟
在STM32内部完成年月日时分秒的计时功能,而且可以接外部备用电池,即使掉电也能正常运行。
CRC校验
是一种数据的校验方式,用于判断数据的正确性。有了这个外设的支持,进行CRC校验就会更加方便一些。
PWR
PWR电源控制可以让芯片进入睡眠模式等状态来达到省电的目的。
BKP备份寄存器,这是一段存储器,当系统掉电时,仍可由备用电池保持数据。这个根据需要可以完成一些特殊功能。
IWDG和WWDG(独立看门狗和窗口看门狗)
当单片机因为电池干扰死机或者程序设计不合理出现死循环时,看门狗可以及时复位芯片,保证系统的稳定。
DAC(数模转换器)
它可以在IO口直接输出模拟电压,是ADC模数转换的逆过程。
SDIO
是SD卡接口,可以用来读取SD卡。
FSMC
是可变静态存储控制器,可以用于扩展内存,或者配置成其他总线协议,用于某些硬件的操作。
USBOTG
是USB主机接口,用OTG功能可以让STM32作为USB主机。去读取其他USB设备。
以上就是STM32F1系列所有外设的大致介绍了。这是STM32F1整个系列的所有外设,并不是所有型号都拥有全部的外设,比如STM32F103C8T6的芯片就没有后面这四个外设,那具体有哪些外设,我们还要看一下对应的数据手册。
ICode 指令总线 | 加载程序指令 |
---|---|
DCode数据总线 | 加载数据,例如常亮、调试数据等 |
System系统总线 | |
Flash | |
SRAM | 用于存储程序运行时的变量数据 |
AHB系统总线(先进高性能外设) | 用于挂载主要的外设的 |
APB系统总线(一般性能外设) | |
DMA(直接访问内存) | 无需 CPU 干预直接读写内存 |
tip:这个图片在 \参考文档\STM32F103C8T6引脚定义 有高清版本
上表中,S表示电源,IO表示输入输出,FT表示容忍电压可达5V,没有FT的只能达3.3V。
VBAT,备用电源引脚,当系统断电时,备用电源可给内部的RTC时钟和备份寄存器供电。
2号引脚,PC13-TAMPER-RTC,可以进行保护数据放在被读取
3-6号引脚,晶振输入
7号引脚,NTST,复位引脚
8、9号引脚:VSSA,VDDA,内部模拟部分电源,如ADC,RC振荡器,接3.3v。
10-19,21,22,25-33,41-43,45,46:IO口,
20号引脚,PB2,io口,或boot1引脚,可用来配置启动模式,同BOOT0,
23,24号引脚:VSS_1,VDD_1:系统的主电源口,同VSS_2/3,VDD_2/3,分区供电,都接上。
34,36,PA13:JTMS/SWDIO ,PA14:JTCK/SWCLK。SW两根下载调试端口,JT5根,
PA13,PA14,PA15,PB3,PB4,JT的5根调试端口,这5个口,一般不调用为IO口。
STM32F103C8T6常用引脚的功能整理:
PA0-PA15: 16个通用I/O引脚,可用于输入/输出、外部中断、模拟输入等。
PB0-PB15: 16个通用I/O引脚,可用于输入/输出、外部中断、模拟输入等。
PC13-PC15: 3个通用I/O引脚,可用于输入/输出、外部中断等。
PD0-PD2: 3个通用I/O引脚,可用于输入/输出、外部中断等。
PE0-PE5: 6个通用I/O引脚,可用于输入/输出、外部中断等。
PF0-PF1: 2个通用I/O引脚,可用于输入/输出、外部中断等。
除了通用I/O引脚外,STM32F103C8T6还具有其他特殊功能引脚,如:
PA9/PA10: USART1的TX/RX引脚。
PA2/PA3: USART2的TX/RX引脚。
PA0/PA1: UART4的TX/RX引脚。
PB10/PB11: I2C2的SCL/SDA引脚。
PA4-PA7, PB0-PB1: 用于ADC模数转换器的模拟输入引脚
晶振
3456号引脚口,时钟晶振引脚口,
PC14-OSC32_IN,PC15-OSC32_OUT,32.768kHz的晶振
OSC_IN ,OSC_OUT,8MHz的晶振。主晶振。
下载端口
PA13:JTMS/SWDIO
PA14:JTCK/SWCLK
串口
PA9,PA10:USART1_TX,USART1_RX
PA2,PA3:USART2_TX,USART2_RX
IIC
PB6,PB7:I2C1_SCL,I2C1_SDA
PB10,PB11:I2C2_SCL,I2C2_SDA
SPI
PA4,SPI1 NSS;PA5,SPI1 SCK,PA6,SPI1 MISO;PA7,SPI1 MOSI
PA12,SPI2 NSS;PA13,SPI2 SCK,PA14,SPI2 MISO;PA15,SPI2 MOSI
一般为第一种,主闪存存储器模式。
系统存储器:做串口下载用,用来救急,当用SW/JT的下载引脚被调用完,就用串口下载。
如果你没有STLINK,也没有JLINK那就可以使用串口来下载程序
第三种,初学者一般也用不到,
设计复位电路的目的是对芯片进行强制复位,使电路恢复到起始状态。其中NRST连接STM32芯片的复位引脚,查阅STM32芯片手册该复位引脚为低电平复位。该复位电路由两种工作方式:第一种是接入电源的一瞬间上电复位,第二种是手动按键复位。
上电复位原理:接上电源瞬间,电容C7等效于短路,此时NRST点为低电位接地,STM32复位。当电容充电完成后,电容C1等效于开路,NRST点电位回升为高电平。
按键复位原理:按下按键KEY1,NRST点接地变为低电平,STM32复位。按键松开后,NRST点回升为高电平。
外接晶振电路,采用的是32.768kHz(2^15)的外部低速晶振和8MHz的外部高速晶振。
设计原因:单片机的运行必须依赖稳定的时钟脉冲,由于单片机的内部时钟容易受外界干扰,所以需要外接晶振电路。
深入了解可以看这些文章
http://t.csdnimg.cn/7dWnd
http://t.csdnimg.cn/pBqj1
<到此第一节结束>
参考文章:
http://t.csdnimg.cn/74N0r | 江协科技/江科大-STM32入门教程-1.STM32简介、系统介绍、软件安装 |
---|---|
http://t.csdnimg.cn/vIPS0 | STM32的外设介绍 |
http://t.csdnimg.cn/OIVbR | 【DMA】认识 DMA 及其工作流程(与传统CPU存取方式的区别) |
http://t.csdnimg.cn/EfOQp | STM32F103C8T6引脚功能整理 |
http://t.csdnimg.cn/TV8hv | STM32F103C8T6芯片引脚定义及功能介绍 |
http://t.csdnimg.cn/7dWnd | 基于STM32的最小系统电路设计(STM32F103C8T6为例) |
http://t.csdnimg.cn/n3Q8x | 基于STM32的最小系统电路设计(手把手零基础教学) |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。