基于stm32的D18S20(one-wire)

STM32的GPIO引脚配置涉及到寄存器操作,如代码中所示,通过设置GPIOG的CRH寄存器来改变第11个IO口的工作模式。DS18B20_IO_IN()宏用于将IO设为输入,DS18B20_IO_OUT()宏用于设为输出。通过清除和置位特定位,实现模式切换。
摘要由CSDN通过智能技术生成
#define DS18B20_IO_IN()  {GPIOG->CRH&=0XFFFF0FFF;GPIOG->CRH|=8<<12;}
#define DS18B20_IO_OUT() {GPIOG->CRH&=0XFFFF0FFF;GPIOG->CRH|=3<<12;}
``
<font color=#999AAA >提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

</font>

@[TOC](文章目录)


<hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1">

# 前言

<font color=#999AAA >提示:这里可以添加本文要记录的大概内容:
stm32不是像51单片机一样,需要设置引脚功能。当最开始你设置了引脚是输出,没有办法改了,但是有时候我们需要输入了,那怎么办呢。</font>

<hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1">

<font color=#999AAA >提示:以下是本篇文章正文内容,下面案例可供参考

# 一、那是什么?


<font color=#999AAA >示例:所以我们通过设置寄存器模式去配置引脚

![在这里插入图片描述](https://img-blog.csdnimg.cn/0eae29c4552a436dad2fc8b020c1dfe4.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LyN5L2V,size_20,color_FFFFFF,t_70,g_se,x_16)
所以我们配置引脚
根据这个表格,我们就可以解释 1 中逻辑分析结果的含义: 
Ⅰ. GPIOG->CRH & 0XFFFF0FFF :将GPIOG的CRH寄存器(11个IO口)的地址位(CNF[1:0] MODE7[1:0])清零,其余位和1按位与 后 保持不变; 
再将上面的结果给GPIOG->CRH,此时, 
GPIOG->CRH | 0X00008000 :因为 0x8=1000b,所以此处是将GPIOG的CRH寄存器(11个IO口)的地址位(CNF7[1:0] MODE7[1:0])置位为1000,即MODE7[1:0]=00,CNF7[1:0]=10,其余位和0按位或 后 保持不变。 
最后,依照表格PG7的CRL寄存器 MOD11=00,处于输入模式,CNF11=10,上拉/下拉输入




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值