本帖最后由 qn7a12 于 2021-9-30 23:57 编辑
可以得出将 DDRx 位清零就选择了输入模式。在该模式下读IDR寄存器的位将返回对应I/O引脚上的电平值。将 DDRx 位置1就选择了输出模式。在该模式下向ODR寄存器的位写入数据将会通过锁存器输出对应数字值到I/O口。读IDR的位将会返回相应的I/O引脚电平值。通过软件配置CR1,CR2寄存器可以得到不同的输出模式:上拉输出,开漏输出。复位后引脚状态为悬空输入。注意!!没有使用的I/O口要连接到固定的电平值,上拉或下拉。
另有三个寄存器 端口 x 输出数据寄存器 (Px_ODR), 端口 x 输入寄存器 (Px_IDR)(可读), 端口 x 数据方向 (Px_DDR)[0输入:1输出]。均为8位寄存器。
还有两个配置寄存器 端口 x 控制寄存器 1 (Px_CR1), 端口 x 控制寄存器 2 (Px_CR2)。
库函数中的GPIO配置。
先来看GPIO的初始化函数,我们假设GPIOD,GPIO_PIN_0,GPIO_MODE_OUT_PP_HIGH_FAST,对应数值为GPIO_PIN_0=0x00, GPIO_MODE_OUT_PP_HIGH_FAST=0xf0。
|