1. GPIO 常见寄存器
不用记忆这些寄存器
在这里插入图片描述
2. 引脚、端口和寄存器关系
以 STM32F103ZET6 为例,有 144 个引脚、7 组 GPIO 端口,每个端口 16 个引脚,它们之间的关系是什么样的?
在这里插入图片描述
由图片可见,每组端口有 7 个寄存器,每个端口都有一组配套的寄存器。
3. 位、寄存器和引脚关系
把寄存器想象成一排 16 个电灯开关:
在这里插入图片描述

  • 1 个寄存器 = 16 个 bit(位)
  • 1 个 bit = 1 个开关
  • 每个开关,控制 1 个引脚
    在这里插入图片描述

4. 深入理解
上面的寄存器是 16 位,且一个引脚对应一位;但是有的寄存器是 32 位,且一个引脚对应四位。
在这里插入图片描述
CRL 是一个 32 位的寄存器,里面每 4 位管 1 个引脚。
32 位 ÷ 4 位 = 8 个引脚
CRL 管 8 个引脚:Px0 ~ Px7
在这里插入图片描述
在这里插入图片描述
且一组MODE和CNF构成一个套房,一个套房两个空间很合理吧,一个睡觉一个上厕所,也就构成一个引脚,所以CNF和MODE其作用是不同的
在这里插入图片描述
这里的 mode0、cnf0 两个 0 表示对应 PA0,说明四位对应一个引脚。
在这里插入图片描述

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐