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

参考网站

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

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

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

STM32的引脚怎么才能即输入又输出呢_第1张图片

 

STM32的引脚怎么才能即输入又输出呢_第2张图片

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

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

STM32的引脚怎么才能即输入又输出呢_第3张图片

结果:

STM32的引脚怎么才能即输入又输出呢_第4张图片

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

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

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

 

试验中的错误:

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

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

 

STM32的引脚怎么才能即输入又输出呢_第5张图片 I/O端口位的基本结构

 

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

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

 

你可能感兴趣的:(项目经验,REVIEW,STM32)