左边是APB2外设总线 GPIO外设命名是 GPIOA GPIOB GPIOC 每个GPIO都有16个引脚编号是从0~15 PA1~PA15 PB0~PB15
每个GPIO模块内 主要包含了寄存器和驱动器 这些东西
寄存器就是特殊的存储器 内核可以通过APB2总线进行读写 这样就可以完成输出电平和读写电平的功能
寄存器每一位对应一个引脚 其中输出寄存器写1,对应的引脚就会输出高电平,写0,就会输出低电平
因为引脚数量原因 也为了便捷 所以会产生某些引脚会身兼数职 多个用途 也叫做特殊引脚
cpu直接对GPIO 进行读写的是直接调用
cpu通过模块间接控制GPIO是间接调用把同一个引脚当作几个功能使用 这样就能多塞几个模块
并不是每个项目都会把所有模块都是用 例如用了1-4 的模块 那就有两个空闲的模块 5 -6
空闲的模块的引脚 cpu就可以直接调用
IO口重映射问题
例如 串口和定时器的复用功能都是PA10和PA9 那两个模块都需要用的时候
会因为冲突问题 cpu不知道用谁 这个时候可以通过io重映射把串口移动到别的引脚上去
1.蓝色是主功能 主功能能默认情况下就是蓝色部分的功能 例:cpu 直接控制GPIO
GPIO 再控制引脚 这就是通用功能
2.绿色的是复用功能 主要以 cpu通过控制模块 模块再控制GPIO GPIO再控制引脚 赋予特殊功能
3.紫色的是重映射 例如 PA10 PA9即是串口又是定时器 同时使用会引发冲突 这时可以通过重映射 可以把串口移动到PB7 PB6
作业
题一:特殊引脚有13个 :
1:(VDD+VSS )*3组 用于给芯片供电
2.VDDA和VSSA 是给芯片模拟模块供电的 例:ADC(模数转换器) DAC(数模转换器)
3.VBAT 芯片电池供电供电接口(备用电源)
4.BOOT0 用来给芯片选择模式
5.NRST给芯片复位
字母和数字的方式命名 字母暗按照ABCDEFG来分组 每组16个引脚 第一个引脚PA0 最后一个PA0
从0开始
io复用 芯片上的同一个引脚可以身兼数职 既可以当普通io使用 受所写的程序直接支配 可以有一些服用功能 同一个引脚可以同时具备多个复用功能
两点好处 1.就是 可以塞进多个模块 有了更多的模块 芯片使用起来功能会更加强大
2.做项目的时候 大部分情况是 大部分模块用不上的 可以把用不上的模块的引脚 可以当普通io口用 做一些基础功能 例如电灯之类的
当两个片上外设发生冲突 可以通过io重映射 把发生冲突的两个模块其中一个 重映射到其他的引脚上