板子是自己做的,在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就都正常了,这个会是什么原因造成的呢
mangui zhang:GpioDataRegs.GPBCLEAR.bit.GPIO51 = 1; 和GpioDataRegs.GPBDAT.bit.GPIO51=0的区别吧
板子是自己做的,在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就都正常了,这个会是什么原因造成的呢
Susan Yang:请参考一下
e2e.ti.com/…/703138