TI中文支持网
TI专业的中文技术问题搜集分享网站

关于msp单片机浮空端口的读入

代码如下,对p2.0端口读入,发现除非p2.0接地,其余(浮空和接高电平)都是读出来的高,这是为什么啊,io口问题?

#include "io430.h"
#include "oled.h"
#include "stdint.h"

int main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
OLED_Init();

P2DIR&=~BIT0;

while(1)
{
interface_3();

if(P2IN&BIT0)
{
delay_ms(10);
if(P2IN&BIT0)
{
interface_5();
delay_ms(100);

}
}
}
}

灰小子:

 浮空的时候,电平状态由周围电磁环境决定

user5176142:

回复 灰小子:

很奇怪的是读P1.4为低,读p1.5为高

user5176142:

回复 灰小子:

很奇怪的是读P1.4为低,读p1.5为高

Susan Yang:

回复 user5176142:

悬空的时候不稳定,要避免引脚悬空

缺省情况下,所有 I/O 引脚在复位后被设置为输入。 为了避免悬空输入引脚消耗更多电流,所有未使用的I/O 应该被设置为输出低电平,除非引脚被连接至外部上拉电阻器,这一连接意味着引脚应该被设置为输出高电平。

Ling Zhu2:

回复 user5176142:

正常的,floating状态下,高低是不定的

user5176142:

回复 Ling Zhu2:

比如下面这段代码中设置了下拉电阻,可是p2.1读出来仍为高,可是将端口换为p2.2完全正常,这是为什么啊

#include <msp430.h>

int main(void)
{WDTCTL = WDTPW + WDTHOLD;P2DIR |= BIT0;P2DIR&=~BIT1;P2REN|=BIT1;P2OUT&=~BIT1;while (1){if (P2IN & BIT1)P2OUT |= BIT0;elseP2OUT &= ~BIT0;}
}

赞(0)
未经允许不得转载:TI中文支持网 » 关于msp单片机浮空端口的读入
分享到: 更多 (0)