stm32学习之路

stm32学习之路: GPIO的寄存器控制

前段时间学习stm32时,看视频一直很懵逼,学了几天就没学下去,但一个点亮led灯都搞得我晕头转向,怎么点亮一盏LED灯要那么麻烦…后来学习计算机组成原理也顺带学了汇编,好像有点懵懂了,趁着寒假重头在来学一次,干就对了!
写一点我的理解:
我这个开发板是普中的,stm3f103…。首先,程序存储器、 数据存储器、 寄存器和 I/O 端口排列在同一个顺序的 4 GB 地址空间,4GB 的存储器空间又 平均分成了 8 块区域, 每块区域的大小是 512MB, 都有各自的功能,
在这里插入图片描述
那就很明了了,内存是地址,每个地址有相对应的功能,我们都知道我们是用C语言来写这个的,那么C语言指针可以操作地址,进而可以执行很多功能,但是4gb的内存地址可是很多,找起来应该肯定很麻烦,我们知道地址只是数值,要是有个名字,不就方便了吗,所以有了寄存器,顾名思义,寄放地址的,且有名字的容器,现在就先但从GPIO的寄存器上说起:

GPIO就是那些接口,可以连接外部设备的,也可以作为输入端口,它是外设,由apb2负责,APB的意思是外围总线。APB主要用于低带宽的周边外设之间的连接。
外设 GPIOx 都是挂接在 APB2 总线上, 属于高速的外
设, 而 APB2 总线的基地址是 0x4001 0000
在这里插入图片描述
如下图可看到GPIOA的基地址是APB2的基地址在加上0x0800,所以我们可以知道GPIO的是挂载在APB2下的,通俗的说APB2是GPIO的上级。
在这里说下什么事地址的偏移,我也是在学习汇编中才知道的,我的理解是,就好比GPIOA的地址,是有APB2的地址在加上其对应的偏移量而来的,那么我可以理解为我们知道了一个酒店在哪,那么房间号就可以比喻为偏移地址,其实也可以理解给了我们一个范围,偏移地址则可以帮我们确定这个范围的莫个地方,这样就可以方便多了;GPIO A 到 C 隔了很多空间,那这些空间那来干什么呢?这些内存是来配置这些外部IO口的,这里我们以 GPIOC 端口为例, 来说明 GPIO都有哪些寄存器
具体的功能网上找
通过配置这些地址所对应的值(就好模电里面的芯片一样,置1,置0所对应的功能又不同),如何配置得看具体的开发手册了在这里插入图片描述
第一张图里可看出
在这里插入图片描述
先写到这,明天再写吧,第一次写,肯定有很所错,望大家指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值