#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,上拉/下拉输入
基于stm32的D18S20(one-wire)
最新推荐文章于 2023-06-30 22:00:00 发布
STM32的GPIO引脚配置涉及到寄存器操作,如代码中所示,通过设置GPIOG的CRH寄存器来改变第11个IO口的工作模式。DS18B20_IO_IN()宏用于将IO设为输入,DS18B20_IO_OUT()宏用于设为输出。通过清除和置位特定位,实现模式切换。
摘要由CSDN通过智能技术生成