单片机中的I/O口常常需要与外部设备进行数据交互,这时候就需要用到上拉或下拉电阻来帮助保证正常的信号传输和接收。下面将从以下几个方面探讨单片机何时需要使用上拉或下拉电阻。
当单片机的GPIO口用作输入时,应该为其设置一个简单的上拉或下拉电路。上拉电路用于将电路保持在高电平,下拉电路用于将电路保持在低电平。这种情况主要应用于开关、传感器等外部设备的输入接口上。
如果没有设置上下拉电路,即使开关没有接通,STM32 的输入口也会浮动,即「惯性输入」状态,这时就会产生问题,如当前作为输入的端口如果接到地线上就会成为低电平,接到逻辑电源也会成为高电平。为了避免这些不可预知的情况发生,需要设置上拉或下拉电路。
当单片机的 GPIO 口用作输出时,输出引脚要么为高电平,要么为低电平。如果在输出高电平的时候没有上拉电阻,那很可能出现下面这种情况:当这个引脚没被连接任何东西时,可能会因为一些微小的过电流导致电平变成「1」,从而加大功耗。当引脚连接到负载中时,连接的负载需要的电流大于由 GPIO 引脚提供的电流时,输出电平也会被拉高。对于这两种情况,需要使用上拉电阻来让GPIO引脚电平稳定。
同样的道理,在输出低电平时,如果没有下拉电阻,在被连接到负载上时因为负载需要的电流大于由 GPIO 引脚提供的电流,输出电平可能会被拉高。
如果单片机与外部设备距离较远,那么连接这两者之间的电缆线可能受到来自其他电磁源(如电动机、电泵)的电磁干扰,导致在接收到正确信号与发出正确信号时会收到电磁干扰所导致的噪声,这时候需要适当的上下拉电路来帮助保证传输信号的准确性。
在单片机中,当 GPIO 口用于输入时应使用上下拉电阻,“输出”口的上下拉电阻一般在与负载之间有一定距离的情况下使用。总的来说,上下拉电阻在单片机中起到调整电平的作用,且应视具体情况选择何时使用。在实际应用中,应当结合外部电路的实际情况进行选择。