请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR5969 工具/软件:Code Composer Studio
我正在尝试在开关的帮助下控制 LED。 这是代码
#include #define SWITCH_ST态(P1IN 和0x02) void main (void){ WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器 PM5CTL0 &=~LOCKLPM5; /********配置 CS 寄存器******** / CSCTL0_H = 0xA5;//解锁 CS 寄存器 CSCTL1_H = 0x00;//将 DCO 设置为8MHz CSCTL1_L = 0x0c; CSCTL2 = 0x0003 | 0x0100 | 0x0030;//设置 DCO = SMCLK = MCLK CSCTL3 = 0x0000 | 0x0000 | 0x0000;//现在将分频器值设置为1 CSCTL0_H = 0x00;//锁定 CS 寄存器 /******** / P1DIR |= 0x01; P1OUT |= 0x01;//初始 LED 在 P1.0上 P1DIR |= 0x02; P1OUT |= 0x02;//P1.1初始为高电平 P1DIR &= 0xFD;//P1.1在输入引脚上设置 while (1){ 如果(switch_state)=0x00){//如果开关按下,则打开 LED P1OUT |= 0x01;//我是否需要上拉寄存器? while ((switch_state)=0x00);//保持 LED 亮起,直到交换机释放 } P1OUT &=~0x01; }//end of while (1) }
在调试期间、我发现一旦 Port1的第2位变为低电平、它永远不会恢复到高电平。 它进入 if()并被卡住
while ((switch_state)==0x00);
是否有任何有助于纠正此问题的软件/代码更改?