您现在的位置是:首页 >技术杂谈 >【五一创作】《嵌入式系统》知识总结7:GPIO寄存器网站首页技术杂谈
【五一创作】《嵌入式系统》知识总结7:GPIO寄存器
总述
每组端口具有7个寄存器
• 实现对GPIO端口初始化配置和数据输入输出控制
1. 配置寄存器:GPIOx_CRL、GPIOx_CRH 用来选择引脚功能,例如输入或输出
2. 数据寄存器:GPIOx_IDR、GPIOx_ODR 用来保存引脚输入电平或输出电平
3. 位控寄存器:GPIOx_BSRR、GPIOx_BRR 用来控制某引脚为1或0
4. 锁定寄存器:GPIOx_LCKR 用来锁定引脚配置(不允许修改)
每个寄存器只能以32位(字)进行访问
• 不允许16位(半字)或8位(字节)访问
GPIO的引脚配置
两个32位(一个64位)配置寄存器
每4位对应一个引脚(64位对应16个引脚)
• 低2位设置其工作模式(MODE)
• 高2位设置其配置(CNF:Configuration)
共有4种输入功能、4种输出功能
1. GPIO的配置寄存器
每组端口有两个32位配置寄存器
• 配置寄存器低(Low)字GPIOx_CRL
• 配置寄存器高(High)字GPIOx_CRH (x是A~G)
配置寄存器低字CRL低8位对应配置
低8位引脚引脚Px0、Px1、 ……Px7
配置寄存器高字CRH对应配置
高8位引脚Px8、Px9、 ……Px15
2. GPIO的数据寄存器
每组端口有两个32位数据寄存器
• 一个是输入数据寄存器IDR
• 一个是输出数据寄存器ODR
• 都只使用其低16位、依次对应每组16个GPIO引脚
当设置GPIO引脚为输入模式时
• 从输入数据寄存器GPIOx_IDR的相应位读出输入值
• 读到1表示该I/O引脚为高电平、读到0表示该引脚为低电平
当配置GPIO引脚为输出模式时
• 向输出数据寄存器GPIOx_ODR相应位写入1或0
• 写入1控制该I/O引脚为高、写入0控制该引脚为低电平
3. GPIO的位控寄存器
每个端口有两个位控寄存器
• 只能写入、不能读出
• 某位写入1实现I/O引脚复位或置位
• 写入0对I/O引脚无影响(作用)
一个是位置位/复位寄存器BSRR
• 高16位控制引脚为低电平(复位BR:Bit Reset)
• 低16位控制引脚为高电平(置位BS:Bit Set)
一个是位复位寄存器BRR
• 低16位控制引脚为低电平(复位BR:Bit Reset)
4. GPIO的锁定寄存器(x=A..E)
端口配置锁定寄存器GPIOx_LCKR(32位)
• 用于冻结配置寄存器对I/O引脚功能的设定
当对端口执行了写入锁定序列后
• 被锁定引脚配置的工作模式不能再改变
• 直到下次复位后才被解锁