其实GPIO这个片上外设的功能: 用于控制IO引脚。
CPU就如同大脑,而这些片上外设就如同四肢一样的关系 如图
——————————————————————————————
OK类比了以上 其实GPIO是有 八种工作模式的
这八种工作模式 因为GPIO是面向IO引脚的, 所以每一个引脚都可以设置 这八种不同的工作模式
红色内部可以看作我们的STM芯片 然后 小方块 就是引脚的另一端。 这么一下子 我们就能看出有关输出和输出的感觉了
——————————————————————————————
OK 那么看到输出
发现 除了通用 复用| 就是推挽 开漏|
那么我们通过通用的手册 进行看看 这个 推挽和 开漏的区别与联系。
第八章有关 通用复用IO引脚的图
那么这样的IO口基本就有37个 A16 B16 C3 D2
然后 上半部分就是输入, 下半部分是输出。
我们就是输出的 所以我们简化一下有关 输出的部分。
删除掉那个位设置....寄存器
然后下面的 输出数据寄存器 往回推 就是CPU进行读写
——————————————————————
这时候来看
1 推挽模式 他是交替进行的 Pmos管推 Nmos管拉。
交替闭合的 可以看出来 如果我们PMOS是通的 那么就是 出来高电平 那么电流肯定是往外的。
相反 Nmos开启的话 我们就是电流往内部的。
所以通过我们写0 或者写1 就可以选择是Nmos 还是Pmos了。
————————————————————————
2开漏模式
对于开漏 来说 就是Pmos一直保持开路 为什么呢
看下面这个 其实发现没有 对于下面这个 他的D 也就是漏极 其实就是Pmos的下面的部分 就是断路了。
所以就是开漏
所以这个模式下 我们写0, 下面导通 正常是低电压 电流可以往里来。
但是 如果我们写1 上面本身就开路 下面也断开了。 这下 IO口跟STM32没有联系到了 电流为0
成 高阻态趋势
————————————————————————
通用 还是 复用
其实 通用 就是CPU直接进行控制, 而复用 就是其他的片外设进行控制、
比如这里就是通过 串口模块 串口进行接管了 去控制IO口 就不是纯CPU单纯控制了