关于嵌入式学习随笔->1《STM32简介》

什么是STM32?

·新的基于ARM内核的32位MCU系列

-内核为ARM公司为要求高性能、低成本、低功耗的嵌入式应用专门设计的Contex-M内核

-标准的ARM架构

·Cortex-M7采用ARMv7-ME(2007年后)架构

ARMv7架构定义了三大分工明确的系列:

1、“A”系列:面向尖端的基于虚拟内存的操作系统和用户应用。“A8”,“A9”系列都 是较为高端的芯片,可以运行安卓、liuix操作系统。

2、“R”系列:针对时时操作系统。

3、“M”系列:对微控制器。

Cortex实际上与ARM一样

M3-72MHz的运行速度

M4-168MHz的运行速度DSP指令功能显著增强

STM32F103ZET6名字的命名时有规则的

STM32型号的说明:以STM32F103ZET6这个型号的芯片为例,该型号的组成为7个部分,其命名规则如下:

(1)STM32:STM32代表ARM Cortex-M3内核的32位微控制器。

(2)F:F代表芯片子系列。

(3)103:103代表增强型系列。

(4)Z:R这一项代表引脚数,其中T代表36脚,C代表48脚,R代表64脚,V代表100脚,Z代表144脚。

(5)E:B这一项代表内嵌Flash容量,其中6代表32K字节Flash,8代表64K字节Flash,B代表128K字节Flash,C代表256K字节Flash,D代表384K字节Flash,E代表512K字节Flash。

(6)T:T这一项代表封装,其中H代表BGA封装,T代表LQFP封装,U代表VFQFPN封装。

(7)6:6这一项代表工作温度范围,其中6代表-40——85℃,7代表-40——105℃。

·固件库是什么?

    固件库就是函数的集合(API),把寄存器操作封装起来。为了方便对寄存器的操作而进行的封装。在操作固件库的时候当然也可以操作寄存器。

·HAL库是什么?

    大家都知道,嵌入式编程有两种操作方式,一种是寄存器操作编程,一种是库函数编程,库函数操作是把常用功能以函数形式封装起来,让人们更容易读懂,具有较高的可读性,方便移植,库函数目前有标准库、HAl库较为常用,在M3一般常用标准库,在之后的M4可用标准库与HAL库,M4之后的M7一般只有HAL库,可以说HAL库是STM公司后来推出来的推荐大家使用的库,HAL库的最大优点在于他可以很方便的在各个STM平台移植。

·库函数操作与寄存器操作有什么区别?

    其实库函数操作的实质还是寄存器操作,最底层仍然是寄存器操作,只是我们对其进行了封装,封装成了一些具有独特功能的函数,之后我们就直接通过函数操作就可以了,这样做的目的是为了增强程序的可读性,其本质仍然是对寄存器的操作。而寄存器操作需要我们十分了解芯片的内部寄存器,以及寄存器每一位的功能,这样才能进行编程,而寄存器一般有很多,而且每个寄存器一般都有很多位,全部记住是不现实的,因此,我是更加推荐使用库函数的操作方法,能让读者很容易的知道编程的目的,即想要实现的功能。

·库函数操作与寄存器操作可以同时使用吗?

    当然这是可以的,只要理解了其本质就很容易明白了,库函数操作的本质即对寄存器的操作,只要操作不是相互冲突的,当然都可以。另外一个不推荐使用寄存器操作的原因是不好检查错误,当程序出现错误的时候,你很难检查出是哪一步操作出现的错误。

 

posted @ 2019-02-20 22:13  Yimiu  阅读(444)  评论(0编辑  收藏  举报