各位前辈,向您们求助!!C2000按键检测实验响应不正常俺是菜鸟,最近在学习C2000 launchpad 在学习按键检测时遇到如下问题:
先贴代码:
#include<F2802x_Device.h>
#include<DSP28x_Project.h>
void main(void)
{
InitSysCtrl(); //系统控制初始化
//InitGpio();
DINT; //禁止全局中断
InitPieCtrl();
IER = 0x0000; //禁止CPU中断
IFR = 0x0000; //清楚CPU所有中断标志
InitPieVectTable();//位向量表中的所有中断向量配置对应的入口地址
EALLOW; //允许访问受保护的空间
GpioCtrlRegs.GPADIR.bit.GPIO0=1; //配置I/O口为输出
GpioCtrlRegs.GPADIR.bit.GPIO1=1;
GpioCtrlRegs.GPADIR.bit.GPIO2=1;
GpioCtrlRegs.GPADIR.bit.GPIO3=1;
GpioCtrlRegs.GPADIR.bit.GPIO12=0;
EDIS; //禁止访问受保护的空间
GpioDataRegs.GPASET.bit.GPIO12 == 0;
for(;;)
{
GpioDataRegs.GPASET.bit.GPIO2 &= 0;
GpioDataRegs.GPASET.bit.GPIO0 &= 0;
GpioDataRegs.GPASET.bit.GPIO3 &= 0;
GpioDataRegs.GPATOGGLE.bit.GPIO1=1;
if(GpioDataRegs.GPADAT.bit.GPIO12 == 1)
{
DELAY_US(10L);
if(GpioDataRegs.GPADAT.bit.GPIO12 == 1)
{
GpioDataRegs.GPASET.bit.GPIO0 |= 1;
GpioDataRegs.GPASET.bit.GPIO1 |= 1;
DELAY_US(100000L);
}
}
}
}
设置GPIO12为输入模式,GPIO管脚在没有按下按键时是1.18V左右,按下按键后,管脚电压为3.3V能够进入if语句,LED1和LED2熄灭,但是在按着按键和停止按下按键两种情况下,在程序GpioDataRegs.GPATOGGLE.bit.GPIO1=1;处设置断点,发现GPIO0连接的LED无法点亮,管脚电压3.3V而与GPIO1连接的LED可以正常闪烁,请问给位前辈,这是什么原因啊??
附部分原理图:
|