STM32系列是ST公司推出的一系列基于CortexM3、CortexM4内核的芯片,其不同的型号的芯片具有不同设计用途。一般来说,STM32作为51单片机的更强版本,可比51单片机更快、做更多的事情,最重要的是,STM32能运行真正意义上的嵌入式操作系统,比起前后台系统具有更高的调度效率和更加稳定的运行环境。简而言之,作为学习路上与工程应用上承上启下的芯片,STM32是能最大限度运行操作系统的最底层系列芯片,很适合作为基础入门学习、电子爱好者使用设计。
若你学习过51、AVR等单片机,那你一定知道“流水灯”这一单片机式的“hello world”,简单来说,STM32能比前述单片机做更多的事情,而且能做的更快。STM32具有更多的内设:定时器、串口、SPI、ADC等等,最显著的特征便是众多的I/O口,能够接非常多的外设,同时凭借以MHz为单位的核心频率使得STM32能够游刃有余的操作各种外设,执行指令。
一般而言,STM32凭借出色的性能、低廉的价格、友好的开发方式,赢得了一致的好评,下到键盘鼠标,上到仪器设备,STM32能很好的完成各种不同的任务,无论是单纯的作为下位机执行程序,又或者作为主机调度各个模块的工作,STM32都不会让你失望。
根据芯片设计思路不同,通常将STM32划分为以下几种类型:
1.主流产品(STM32F0、STM32F1、STM32F3)
2.超低功耗产品(STM32L0、STM32L1、STM32L4、STM32L4+)
3.高性能产品(STM32F2、STM32F4、STM32F7、STM32H7)
通常来说,学习入门用F1系列即可,能满足大部分的学习要求。但若遇到要设计进行工程选型的时候,通常先根据功能选择有合适资源的STM32芯片,然后根据工程所需的代码量选择不同内存的型号即可。以下给出芯片型号的说明。(来源百度百科)
1 | STM32 | STM32代表ARM Cortex-M内核的32位微控制器。 |
---|---|---|
2 | F | F代表芯片子系列。 |
3 | 103 | 103代表增强型系列。 |
4 | R | R这一项代表引脚数,其中T代表36脚,C代表48脚,R代表64脚,V代表100脚,Z代表144脚,I代表176脚。 |
5 | B | B这一项代表内嵌Flash容量,其中6代表32K字节Flash,8代表64K字节Flash,B代表128K字节Flash,C代表256K字节Flash,D代表384K字节Flash,E代表512K字节Flash,G代表1M字节Flash。 |
6 | T | T这一项代表封装,其中H代表BGA封装,T代表LQFP封装,U代表VFQFPN封装。 |
7 | 6 | 6这一项代表工作温度范围,其中6代表-40——85℃,7代表-40——105℃。 |
1.STM32F0:48MHz
2.STM32F1:72MHz
3.STM32F2:120MHz
4.STM32F3:72MHz
5.STM32F4:168MHz
6.STM32F7:216MHz
1.STM32F103C8:USART1、USART2、USART3
2.STM32F103C8:USART1、USART2、USART3、UART4、UART5
3.STM32F407ZETX:USART1、USART2、USART3、UART4、UART5、USART6
4.STM32F429IGTX:USART1、USART2、USART3、UART4、UART5、USART6、UART7、UART8
1.STM32F103C8:ADC1、ADC2
2.STM32F103ZE:ADC1、ADC2、ADC3
3.STM32F407ZETX:ADC1、ADC2、ADC3
4.STM32F429IGTX:ADC1、ADC2、ADC3
1.STM32F103C8:TIM1、TIM2、TIM3、TIM4
2.STM32F103ZE:TIM1、TIM2、TIM3、TIM4、TIM5、TIM6、TIM7、TIM8
3.STM32F407ZETX:TIM1、TIM2、TIM3、TIM4、TIM5、TIM6、TIM7、TIM8、TIM9、TIM10、TIM11、TIM12、TIM13、TIM14
4.STM32F429IGTX:TIM1、TIM2、TIM3、TIM4、TIM5、TIM6、TIM7、TIM8、TIM9、TIM10、TIM11、TIM12、TIM13、TIM14
寄存器开发方式是对底层寄存器进行位操作,基本是通过逻辑与或非对寄存器赋值实现特定功能。STM32有上百个寄存器,通常需要配合数据手册进行设计代码,但此方式设计的代码效率是极高的。
标准库是对寄存器开发方式所进行的一种包装整合,可直接调用官方准备好的API函数进行代码编写设计,其实就是软件抽象层。
HAL库是ST公司目前主力推的开发方式,全称Hardware Abstraction Layer(抽象印象层)。和标准库一样,HAL库的一些函数可以做到某些特定功能的集成。也就是说,同样的功能,标准库可能要用几句话,HAL库只需用一句话就够了。并且HAL库也很好的解决了程序移植的问题,只要使用的是相通的外设,程序基本可以完全复制粘贴,注意是相同外设,但方便的同时也造成了它执行效率的低下,毕竟需要层层调用函数达到实现功能的结果。
LL库是最近推出的比HAL库体积更小的库。
STM32cube是ST官方推出的图形配置STM32资源的软件,直接生成可执行代码文件。
目前为Keil5版本,STM32的开发下载软件。
ube是ST官方推出的图形配置STM32资源的软件,直接生成可执行代码文件。
目前为Keil5版本,STM32的开发下载软件。
当前STM32常用的操作系统:μC/OS-II、FreeRTOS。