重生归来之挖掘stm32底层知识(1)——寄存器
概念理解
要使用stm32首先要知道什么是引脚和寄存器。
如下图所示,芯片通过这些金属丝与电路板连接,这些金属丝叫做引脚。一般做软件开发是不需要了解芯片是怎么焊的,只要会使用就行。我们平常通过编程来控制这些引脚的输入和输出,一般在开发板上引出来针脚,这些针脚基本上都是我们可编程的,一般叫做GPIO。
单片机现在存在于生活中的方方面面,高端的像手机电脑,低一些的像家用电器的显示屏,这背后都有单片机的存在。在一些功能少的东西上面用大内存的芯片会导致成本高,所以单片机的内存都非常小,因此其编程语言采用的也是针对底层的C语言。
通过C语言,可以找到单片机各种外设资源的地址,并进行读和写的操作。每一个外设所占的地址被叫做存储器,其地址是由芯片厂商或用户分配,给存储器分配地址的过程就称为存储器映射,如果给存储器再分配一个地址就叫存储器重映射。
存储器划分好了之后,在里面还有很多不同外设的负责不同功能的字节。stm32芯片的每个功能都被分配了4个字节(Byte)即32bit来控制,所以这负责控制某个功能的4个字节被称为一个单元。为了方便记忆,为每个单元起个名字,这个名字就是寄存器,取名的过程就是寄存器映射。下图为寄存器起始地址。
通过外设的起始地址,再加上每个寄存器的起始地址,通过C语言的指针就能找到需要配置的寄存器,通过位与和位或就能对其进行操作。
总结
简单来说,寄存器就是各个外设对应功能的名字,通过对这些名字进行操作就能实现对我们需要编程的位进行读写操作,从而控制相应引脚的输入输出状态,实现我们想要的功能。