对于STM32来说,首先我们从其精密性、可靠性以及安全性三个方面来进行说明:
精密性:与单片机的外设基本相同,除了其包含了7个DMA(直接存储器访问)通道。每个通道都可以用来在设备与内存之间进行8/16/32位数据的传输。每个设备都可以向DMA控制器发出发送或者接受数据的请求。
可靠性:采用硬件来对可靠性进行支持,包括一个低电压检测器,一个时钟安全管理系统和两个看门狗定时器(一个为窗口看门狗,一个为独立看门狗)。
安全性:STM32可以锁住其内部的Flash而使得破解人员无法通过端口读取其内容。STM32还有一小块电池备份RAM区,当该RAM区域检测到其入侵检测引脚产生电平变化时,就会自动将电池备份的RAM区域上的内容全部删除。
STM32又分为增强型与基本型,其基本外设与配置如下图所示:
增强型:CPU可在最高达72MHz的主频下运行
基本型:CPU可在最高达36MHz的主频下运行
STM32又根据其引脚数和闪存容量,其产品可分为下图所示:
在这里我要说一下:
STM32的内核是ARM推出的基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。STM32是ARM7架构中的一员。
ARM7与ARM9处理器有两条终端通断:快速中断通道与通用中断通道。而Cortex-M3处理器的一个关键性提升就是其克服了上面处理器的缺点,即当中断产生时,需要中断或者终止当前执行指令所需的时间是不确定的。还有一个是其中断结构本身不支持中断嵌套,需要通过软件上的设计才能实现。
Cortex-M3内核可以通过执行WFI或者WFE指令进入睡眠模式。
使用WFI指令,内核会在有中断的请求下从睡眠状态恢复,并且执行中断服务。
使用WFE指令,让内核进入睡眠模式,内核遇到唤醒事件就会被唤醒,并从其进入睡眠模式的断点处恢复执行,唤醒事件不会使CPU跳转执行对应的中断服务程序。