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.

关于28335一个很奇怪的IO口问题



板子是自己做的,在GPIO49,51,53上分别接了一个LED,LED正端接IO口,负端通过10K电阻后接地,将这三个IO口以#defin的形式宏定义为

#define LED1  GpioDataRegs.GPBDAT.bit.GPIO49  
#define LED2  GpioDataRegs.GPBDAT.bit.GPIO51  
#define LED3  GpioDataRegs.GPBDAT.bit.GPIO53

三个IO口都配置为输出,上拉,要执行的动作如下

    for(i=0;i<5;i++)
    {
        LED1 = 0;
        LED2 = 0;
        LED3 = 0;
        Delay(2000000);
        LED1 = 1;
        LED2 = 1;
        LED3 = 1;
        Delay(2000000);
    }

代码执行的时候发现,LED2无论如何都不亮,只有LED1和LED3是正常的,然后注释掉LED1和LED3的语句,单独控制LED2,就又正常了,给人的感觉就是LED2不能和LED1,LED3共存,然后修改了下,采用下面的代码

    for(i=0;i<5;i++)
    {
        //LED1 = 0;
        //LED2 = 0;
        //LED3 = 0;
        GpioDataRegs.GPBCLEAR.bit.GPIO49 = 1;
        GpioDataRegs.GPBCLEAR.bit.GPIO51 = 1;
        GpioDataRegs.GPBCLEAR.bit.GPIO53 = 1;
        Delay(2000000);
        //LED1 = 1;
        //LED2 = 1;
        //LED3 = 1;
        GpioDataRegs.GPBSET.bit.GPIO49 = 1;
        GpioDataRegs.GPBSET.bit.GPIO51 = 1;
        GpioDataRegs.GPBSET.bit.GPIO53 = 1;
        Delay(2000000);
    }

采用这种控制方式,三个LED就都正常了,这个会是什么原因造成的呢