注意:
这里出现的情况是给IO输入高电平后,外部输入撤离,但是IO寄存器IN仍然保持高电平,而是用万用表量电压后,IO变为0.
出现这个情况的原因是IO对地串联了一个3K电阻和100nf电容,外部输入是加在电阻和电容的连接处的。应该是由外部输入时,对电容充电,外部输入撤离后电容保持该电压。
PS:MSP430f5529DEMO里关于按键中断init
#define BUTTON_PORT_DIR PADIR
#define BUTTON_PORT_OUT PAOUT
#define BUTTON_PORT_SEL PASEL
#define BUTTON_PORT_REN PAREN
#define BUTTON_PORT_IE PAIE
#define BUTTON_PORT_IES PAIES
#define BUTTON_PORT_IFG PAIFG
#define BUTTON_PORT_IN PAIN
#define BUTTON1_PIN BIT7 //P1.7
#define BUTTON2_PIN BIT2 //P2.2
#define BUTTON1_IFG P1IFG //P1.7
#define BUTTON2_IFG P2IFG //P1.7
void Buttons_init(uint16_t buttonsMask)
{
BUTTON_PORT_OUT |= buttonsMask; //buttons are active low
BUTTON_PORT_REN |= buttonsMask; //pullup resistor
BUTTON_PORT_SEL &= ~buttonsMask;
}