stm32的IO很是复杂,情况多达8种。不过实际项目种,掌握一般的就够用了。
今天趴趴哥当年那些恶心的配置。
LED灯,基本配置 推挽输出。
按键输入,看外围电路,另一端接的是GND还是VCC 如果接的GND 那么没按下的时候要为高,才能区分按下了还是没有按下,故配置为上拉 接VCC的话同理。
模拟IIC的时候,就算IO配置成上拉也没软用,这个时候需要外接上拉电阻,那么为什么有些器件要,有些不用。 这个涉及到器件的内阻 内阻大的你不加上拉 你的io被分压了,你永远读取不到高电平。读出的数据全是0。
遇到高阻抗的怎么配置。比如某个芯片,充电的时候低电平。充满了为高阻抗。用万用表测试,充电时低电平,充满了还是低电片。玩毛,怎么判断,死说硬件问题。其实,高阻抗就是那边的输出不影响你的io口了。所以你配置成上拉。如果那边为0,上拉也读到0。高阻的时候读到上拉的高电平。如果它是高电平有效,你就要配置成下拉了。如果还有你硬件加了外围电路也要小心了。遇到没经验的给你接个地,你就要哭了。
遇到输出吃IO电压的怎么配置,如果某个器件很吃电压。你IO输出了高电平使能了,你量了一下那个地方的io,发现为0。然后你死命的查代码,一个io输出的问题,查到你怀疑人生,哥告诉你,你拔出来量一下就知道,你确实输出了高。但是,插在一起量就是0,你就想肯定哪里短路了,你很生气的说硬件问题。其实这个是你的IO驱动能力不足,你应该外接上拉电阻,然后IO配置成开漏输出就好了。
在一些项目中,都是大电流的,要注意有些没用到的IO千万不要配置成了输入(就是要检查代码,你肯定说,没用到的怎么会配置呢。)。因为外围电路没有设置好的时候很容易倒灌。
这些经验基本够用来,你们的还有吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
额,这条我搞错了.谢谢提醒
一周热门 更多>