IO方向寄存器简单操作软件

在上次操作DS18B20时,用到IO口的方向设置。上次DS18B20的H文件中的代码

//IO方向设置
#define DS18B20_IO_IN() {GPIOG->CRH&=0XFFFF0FFF;GPIOG->CRH|=8<<12;}
#define DS18B20_IO_OUT(){GPIOG->CRH&=0XFFFF0FFF;GPIOG->CRH|=3<<12;}
IO操作函数
#define DS18B20_DQ_OUTPGout(11) //数据端口PA0
#define DS18B20_DQ_IN PGin(11) //数据端口 PA0

1、分析:
GPIOG->CRH&=0XFFFF0FFF;GPIOG->CRH|=8<<12;
GPIOG->CRH&=0XFFFF0FFF意思是将第12位到16位置为0,其他的不变。
GPIOG->CRH|=8<<12意思是将1000右移动12位。

2、说明:
每个IO口都有两个寄存器CRH和CRL来设置IO方向,其中CRH用来设置高8-15引脚,CRL用来设置0-7引脚,每个引脚的设置需要四位。
1:0位用来配置端口速度模式:
00:输入模式(复位后的状态)
01:输出模式,最大速度10MHz
10:输出模式,最大速度20MHz
11:输出模式,最大速度50MHz
3:2为用来配置端口输入输出模式
输入模式:
00:模拟输入
01:浮空输入(复位后的状态)
10:上拉/下拉输入模式
11:保留
输出模式:
00:通用推挽输出
01:通用开漏输出
10:复用功能推挽输出
11:复用功能开漏输出

在STM32参考手册中的示意图

IO方向寄存器简单操作软件

关注“电子信息笔记本”公众号,在公众号中软件免费下载,在公众号中回复io方向寄存器简单操作软件即可
链接:https://mp.weixin.qq.com/s/xuy8aJgRAUBA-KPhljaYug

来源:东方欲晓w

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月16日
下一篇 2021年1月16日

相关推荐