GPIO中的寄存器类型
表一 F1系列通用寄存器GPIOX_yyy
名称 | 作用 |
---|---|
CRL | 端口配置低寄存器 |
CRH | 端口配置高寄存器 |
IDR | 端口输入寄存器 |
ODR | 端口输出寄存器 |
BSRR | 端口设置/清除寄存器 |
BRR | 端口位清除寄存器 |
LCKR | 配置锁定 |
表二 F4/F7/H7系列
项目 | Value |
---|---|
MODER | 设置模式 |
OTYPER | 设置输出类型 |
OSPEEDR | 设置输出速度 |
PUPDR | 设置上下拉电阻 |
IDR | 输入数据 |
ODR | 输出数据 |
BSRR | 设置ODR寄存器 |
LCKR | 端口位清除寄存器 |
对寄存器的位操作运算
1.与非:&=~ (清零)
2.或:|= (置一)
将需要清零或者置一的位设置为1
代码规范化
1.对于一个位控制一个GPIO的寄存器(如IDR或者ODR),位操作的右边通常写做(1<<A)的形式,表示对表示对寄存器的第A位进行清零或者置一的操作
2.对于四个位控制一个GPIO的寄存器(如CRL或者CRH),位操作的右边通常写作((A)<<(4*B))的形式,表示对第B个IO口的进行清零或者置一操作,相对位置由A中的1决定。其中A是一个4位二进制数。