位于Cortex-M3内核里面的外设
1.NVIC 嵌套向量中断控制器:是内核里面用于管理中断的设备,比如配置中断优先级。
2.SysTick 系统抵达定时器:这个是内核里面的一个定时器,主要用来给操作系统提供定时服务。STM32可以加入操作系统,比如FreeRTOS、UCOS等,如果用了这些操作系统,就需要SysTick提供定时来进行任务切换的功能。我们也可以用这个定时器来完成Delay函数的功能。
位于Cortex-M3内核外的外设
1.RCC 复位和时钟控制:可以对系统的时钟进行配置,还有就是使能各模块的时钟。在STM32中,其它的这些外设在上电的的情况下默认是没有时钟的。不给时钟的情况下,操作外设是无效的,外设也不会工作,这样的目的是降低功耗。所以,在操作外设之前,必须要先使能它的时钟。这就需要我们用RCC来完成时钟的使能。
2.GPIO 通用IO口:GPO就是通用的IO口。我们可以用GPIO来点灯,读取按键等。也是单片机最基本的一个功能。
3.AFIO 复用IO口:AFIO是复用口。它可以完成复用功能端口的重定义,还有中断端口的配置。
4.EXTI 外部中断:EXTI是外部中断。配置好外部中断后,当引脚有电平变化时,就可以触发中断,让CPU来处理任务。
5.TIM 定时器:TIM是定时器,这也是整个STM32最常用、功能最多的外设。TIM分为高级定时器、通用定时器、基本定时器三种类型,其中高级定时器最复杂,常用的是通用定时器,这个定时器不仅可以完成定时中断的佳务,还可以完成测频率,生成PWM波形,配置成专用的编码器接口等功能。像PWM波形,就是电机驱动、舵机驱动最基本的要求了。
6.ADC 模数转换器:ADC是模数转换器。STM32内置了12位的AD转换器,可以直接读取IO口的模拟电压值,无需外部连接AD芯片,使用非常方便。
7.DMA 直接内存访问:DMA是直接内存访问。这个可以帮助CPU完成搬运大量数据这样的繁杂任务。
8.USART 同步/异步串口通信:USART是同步或者异步串口。我们平常用的UART是异步串口。这里的USART是即支持异步串口,也支持同步串口,当然我们实际是用异步串口比较多。
9.I2C I2C通信和SPI SPI通信: I2C和SPI是最常用的两种通信协议,STM32也内置了它们的控制器,可以用硬件来输出时序波形,使用起来更高效。当然用通用IO口来模拟时序波形也是没有问题的。
10. CAN CAN通信和USB USB通信:CAN和USB也都是通信协议,CAN通信一般用于汽车领域,利用这个STM32的USB外设。可以做一个模拟鼠标、模拟U盘等设备。
11. RTC 实时时钟:RTC是实时时钟。在STM32内部完成年月日、时分秒的计时功能。而且可以接外部备用电池,即使掉电也能正常运行。
12. CRC CRC校验:CRC校验是一种数据的校验方武,用于判断数据的正确性。有了这个外设的支持,进行CRC校验就会更加方便一些。
13. PWR 电源控制: PWR电源控制可以让芯片进入睡眠模式等状态,来达到省电的目的。
14. BKP 备份寄存器:BKP备份寄存器是一段存储器。当系统掉电时,仍可由备用电池保持数据。这个根据需要,可完成一些特殊功能。
15. IWDG 独立看门狗和 WWDG 窗口看门狗:当单片机因为电磁干扰死机或者程序设计不合理出现死循环时,看门狗可以及时复位湖片。保持系统的稳定。
16. DAC 数模转换器:DAC是数模转换器,它可以在IO口直接输出模拟电压,是AD模数转换的逆过程。
17. SDIO SD卡接口:SDIO是SD卡接口,可以用来读取SD卡。
18. FSMC 可变静态存储控制:FSMC是可变静态存储控制器,可以用于扩展内存,或者配置成其他总线协议,用手某些硬件的操作。
19. USB OTG USB主机接口:USB OTG就是USB主机接口,用OTG功能,可以让STM32作为USB主机去读取其他USB设备。