STM32的引脚怎么才能即输入又输出呢

参考网站

采用“配置成开漏输出,再外接上拉”的方式,在输出的时候,直接输出,这一点是没有问题。但是在如何读入数据的时候,问题来了:在读取之前,要不要先把STM32的引脚输出高电平

所以我就做了一个实验,以下是实验内容。

因为本实验的结果是应用于AT24C16,所以实验电路就直接在这个电路图的基础上改的。

 

上电之后,用万用表测试引脚SCL与引脚SDA的电压,发现不论STM是输出高还是低,SDA和SCL的电压都是是等于STM32输出的,所以可以确定AT24C16的SCL与SDA在刚上电的时候,都是高电平

然后将SCL与SDA短接,并运行程序

结果:

可以看到读0正确,读1不正确

所以,可以得到结论:要想实现STM引脚即输入又输出,需要:

  1. 引脚配置成开漏输出
  2. 外部需要上拉
  3. 在输入的时候,要先将STM的引脚置高

 

试验中的错误:

前次实验,我直接把3.3V加到SDA引脚上,再去读取SDA的时候,发现不管有没有把STM的引脚置高,STM读取到的都是1,我所以就很高兴地得到了一个能跟理论不一致的结论:可以直接读取SDA上的数据。

当VCC与GND短接的时候,测得的电压是VCC,这是符合生活经验的,手里攥着220V,脚下踩着GND,结果是会死人的。

 

I/O端口位的基本结构

 

关于进一步了解开漏输出,或STM32引脚的输入输出各种模式,可以参考:

STM32(二)之GPIO操作(1)——之输入输出操作

 

  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
STM32系列微控制器的引脚可以配置为输入输出。这些引脚通常称为GPIO(通用输入/输出引脚。以下是如何配置STM32引脚的简要步骤: 1. 引脚选择:首先,选择一个可用的引脚。每个STM32型号都有不同数量和类型的引脚,因此需要查阅相关型号的数据手册以了解可用的引脚和其功能。 2. 引脚模式选择:将引脚配置为输入输出。这可以通过设置GPIO端口控制寄存器(GPIOx_MODER)来完成。每个引脚有两个位,用于选择引脚的功能模式。将这些位设置为01表示将引脚配置为输出设置为00表示将引脚配置为输入。 3. 引脚速度选择(仅适用于输出):如果将引脚配置为输出,可以选择输出速度。这可以通过设置GPIO端口输出速度寄存器(GPIOx_OSPEEDR)来完成。每个引脚有两个位,用于选择输出速度,例如低速、中速、高速等。 4. 引脚状态设置(仅适用于输出):如果将引脚配置为输出,并且要设置其状态(高电平或低电平),可以通过设置GPIO端口数据寄存器(GPIOx_ODR)来完成。将特定引脚的位设置为1表示将其设置为高电平,设置为0表示将其设置为低电平。 5. 引脚状态读取(仅适用于输入):如果将引脚配置为输入,并且要读取其状态(高电平或低电平),可以通过读取GPIO端口数据寄存器(GPIOx_IDR)来完成。特定引脚的位将反映引脚的状态。 需要注意的是,具体的配置步骤和寄存器名称可能会因不同型号的STM32微控制器而有所不同。因此,建议查阅相关型号的数据手册以获取准确和详细的信息。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值