This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Starterware/MSP-EXP430G2:交换机 S2不工作

Guru**** 2553450 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/594710/starterware-msp-exp430g2-switch-s2-not-working

器件型号:MSP-EXP430G2

工具/软件:Starterware

#include 

/*
main.c
*/
int main (void){
WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器

P1DIR = 0x40;
P1DIR&=~0x08;
P1REN = 0x08;
P1OUT |= 8;


while (1){

if (((P1IN & 0x08)= 0x08){

P1OUT = 0x40;
_delay_cycles (50000);
P1OUT = 0;
_delay_cycles (50000);
}
其他
{

P1OUT = 0x40;

}


}

返回0;
} 

我使用此代码将板载开关 S2用作输入。 它不工作。

然后我不知道原因、但我使用跳线连接了 P1.3和 P1.2、一切正常。

你能告诉我这里发生了什么吗? 此外、我如何在不使用跳线的情况下使其正常工作?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请勿使用0x40或0x08等魔法数字、而应使用 BIT6或 BIT4等符号。

    "P1OUT=..." 修改端口的全部八个位、包括控制上拉/下拉电阻器的位。 要修改单个位、请使用"|="或"&&~"。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢、Clemens、
    我按照您的建议更正了第19、21、27行的代码、这些内容已经开始工作。
    我将注意使用符号来设置位。