片上资源又叫做外设,英文是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
是可变静态存储控制器,可以用于扩展内存,或者配置成其他总线协议,用于某些硬件的操作。文章来源:https://uudwc.com/A/JGGyZ
USBOTG
是USB主机接口,用OTG功能可以让STM32作为USB主机。去读取其他USB设备。
以上就是STM32F1系列所有外设的大致介绍了。这是STM32F1整个系列的所有外设,并不是所有型号都拥有全部的外设,比如STM32F103C8T6的芯片就没有后面这四个外设,那具体有哪些外设,我们还要看一下对应的数据手册。
内容转载视频(江协科技)
文章来源地址https://uudwc.com/A/JGGyZ