片上资源外设(Peripheral)
对于stm32f103c8t6所包含的外设资源如图所示,而我们学习单片机也是去理解这些外设的功能,以及如何使用这些外设。
表中前两个深颜色的外设是位于M3内核的外设,其余都是内核外的外设。
NVIC是内核里面用于管理中断的设备,比如配置中断优先级。
SysTick是内核里面的一个定时器,主要用来给操作系统提供定时服务,可以加入FreeRTOS,UCOS等,如果用了这些操作系统就需要SysTick提供定时来进行任务切换的功能。平时使用他来完成延时函数。
RCC用来给系统进行时钟配置,单片机上电后其他所有外设在不进行时钟使能的情况下是不会工作的,必须让RCC对各个模块进行时钟使能。
GPIO是通用的输入输出端口。
AFIO是复用IO口,可以完成复用端口的重定义,还有中断端口的配置。
EXTI是外部中断,配置好外部中断当引脚有电平变换时,就可以触发中断,让CPU来处理任务。
TIM时定时器,单片机最常用,功能最多的一个外设。TIM分为高级定时器,通用定时器,基本定时器三种类型。高级定时器最为复杂,通用定时器:完成定时中断的功能,还可以完成测频率,生成PWM波形,配置成专用的编码器接口等功能。
ADC模数转换器,这个单片机内置了12位的AD转换器,可以直接读取IO口的模拟电压值,无需外部连接AD芯片。
DAC数模转换器,可以在IO口直接输出模拟电压。
DMA是直接内存访问,可以帮助CPU完成搬运大量数据这样的复杂任务。
UART/USRT,异步/同步串口通信。
IIC/SPI/CAN/USB也都是通信协议。CAN通信一班用于汽车领域。
RTC是实时时钟,在STM32内部完成年月日,时分秒计时的功能,而且可以接外部备用电池,即使掉电也能正常运行。
CRC校验,是一种数据的校验方式,用于判断数据的正确性。
PWR,可以让单片机进入睡眠模式,达到省电的作用。
BKP备用寄存器,这是一段存储器,当系统掉电时,仍可用备用电池保持数据,根据需要可以完成特殊功能。
IWDG/WWDG是看门狗,当单片机因为电磁干扰死机或者程序设计不合理出现死循环时,看门狗可以及时复位芯片,保证系统稳定。
SDIO可以用来读取SD卡。
FSMC用来扩展内存。
USB OTG使用OTG功能,可以让STM32作为USB主机去读取其他USB设备。