大学生
最后登录1970-1-1
在线时间 小时
注册时间2020-7-13
|
楼主 |
发表于 2020-7-21 13:15:25
|
显示全部楼层
本帖最后由 Richard_Winters 于 2020-7-22 10:53 编辑
通过阅读火哥的书,其中有关于GPIOx接口的位操作的知识点,于是又和微机原理中的接口电路中的知识点进行了一些联系,思考了一下GPIO的本质,并且得到了GPIO(Genral Purpose Input/Output)就是Integrated I/O Interface Circuit(将输入输出接口集成在一起的接口电路)的结论,所以我暂时理解GPIO为GPIO接口电路,至于为什么叫做接口电路而不叫端口,因为往往习惯于将多个端口(寄存器)的集合叫做接口,不过这些问题无关大局,STM32F103指南者系列有A,B,C,D,E共五个GPIO接口电路,如果以后发现自己的理解有出入,会及时进行更改。并再次回顾了引脚普适的GPIO_Pin_x宏定义的含义,总结出来一些没有什么用的东西。
另外在STM32中有一点很重要,在STM32user manual中,8.1一节【GPIO功能描述】中图片表示的仅仅是GPIOx(5个GPIO接口电路中的一个)的16位引脚中的一位引脚,该接口电路中的寄存器组{BSRR,BRR,ODR,IDR,CRL,CRH,LCKR}控制着这16位引脚,并且由于有5个GPIO接口电路,所以就有5组寄存器组{BSRR,BRR,ODR,IDR,CRL,CRH,LCKR}。这5组寄存器组分别控制着80位引脚,通过此番思考,我也理解了为什么STM32拥有着不俗的性能,这就好比如果一只章鱼有80只触手,并且都可控,则其威力不可小觑。首先,我对内存地址统一理解成为由上至下从0x0000 0000到最后的地址,依次增大,并且每一个地址都对应的存储1Byte=8bit的数据。
另外,STM32工作在小端模式Little-Endian,就是低位字节存放在内存的低位地址,高位字节存放在内存的高位地址,对于每一个数据来说,数据内部本身可以分成高位和低位,由此可以理解为对每个数据都由低位到高位进行排列的一种模式。
作为对比,还有一个大端模式Big-Endian,就是低位字节放在内存的高位地址,高位字节放在内存的低位地址。
|
-
完整的I/O设备,I/O接口电路(端口或网络),CPU的关系
-
引脚宏定义
-
抽象端口网络
-
输入输出和CPU的关系
|