嵌入式技术中的STM32微控制器详解
学习stm32的时候思考了一个问题:什么是嵌入式?
首先嵌入式是以应用为中心,以计算机技术为基础,软硬件可以裁剪的微型计算机系统。他的特点是:成本、可靠性、体积、功耗都有严格要求。
既然是以应用为中心,软件硬件都可以裁剪,就意味着嵌入式的高度定制化、灵活性强、应用广泛。可以实现精准的定制产品所需要的应用功能,非常的灵活。目前日常生活中,工业生产中,都随处可见嵌入式的应用,比如智能手机、智能家居设备、汽车电子控制系统等等。
随着物联网、人工智能、大数据等等的技术发展,嵌入式系统也在不断的创新与进化,满足更加复杂和多样化的应用需求。发展前景十分的可观。
ARM和STM32
1.什么是ARM
ARM是一家公司,专门生产内核,以授权专利的反式盈利,所以也是基于ARM公司的内核而设计出来的芯片的统称。
ASM是一种32位的精简指令集处理器架构。由低功耗、高性能和广泛的应用领域而闻名。正是因为ARM这些特点,全世界的绝大多数半导体公司都使用了ARM公司的授权,ARM公司通过这个一本万利。
2.ARM内核分类
最初是通过数字命名,比如arm7、arm9、arm11。后来这样的命名方式得不到满足,于是在arm11之后把内核分为了三大类:cortex -a、cortex -r、cortex -m。
cortex -a
针对开放性的操作系统(运算量大,人机交互,性能要求较高),该系列发展的速度很快,不断的推出新的型号提升性能。比如手机、平板、电视机等等。
cortex -r
针对实时性要求高的领域(实时响应,可靠性),比如航空航天、汽车电子、军工等等
cortex -m
针对低功耗嵌入式系统,比如微控制器、传感器结点、空调、智能排查等等。
STM32F407VET6
本人学习使用的正是STM32F407VET6,所以使用这个举例说明
内核是arm内核 cortex -m M4
ST:代表的是意法半导体公司
M:代表的是MCU,是微控制器(Microcontroller Unit)的缩写,这里不展开说明,读者可自行查阅
32:代表是32位(bit),即cpu一次处理数据的位数
F:代表的是通用型
407:4高性能 07子型号
V:代表的是引脚数 100pin(引脚)
E:FLASH大小为512k
T:封装 LQFP,这里是硬件部分的知识,了解即可
6:代表温度是-40~85
STM32的开发方式
stm32的开发方式一般为三种:寄存器开发、标准库开发、HAL库开发。还有一种ll库开发,但是目前还不成熟,加上之前2019年因为某些原因并没有火起来,所以本文不算入其中。
寄存器开发
这是相对来说最难的开发方式,因为需要开发者通过查阅手册,找到对应的寄存器,对寄存器的每一位进行开发,需要不断的查阅手册,开发效率相对来说比较慢,但是这种开发方式的代码执行效率是最高的。有时候使用标准库开发时,并没有提供相应的接口,即函数给我们使用,所以有时候并不只是单纯的用一种开发方式进行开发。
标准库开发
这是使用最广的一种开发方式,开发难度和代码执行效率都适中。很适合新手初学时使用,不过缺点是并没有使用寄存器开发时更容易理解里面的底层逻辑,最好是初学时也要搞清楚寄存器的开发原理。需要注意的是,因为意法半导体公司已经停止该开发方式的更新,所以是有限制的,目前在更新HAL库。
HAL库开发
这是最简单的开发方式,HAL库是一种图形界面开发,使用者知道原理逻辑,使用这种开发方式效率很高,不过代码的执行效率是最低的。初学者学会前两种开发方式后,HAL库很容易就上手。
作者:小暄宝