C2000按键实验现象有点问题,望各位前辈不吝赐教

[复制链接]
2129|7
 楼主| zhangdan1986 发表于 2013-8-14 17:46 | 显示全部楼层 |阅读模式
gp, pi, IO, GPIO, AD
各位前辈,向您们求助!!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可以正常闪烁,请问给位前辈,这是什么原因啊??
附部分原理图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
biechedan 发表于 2013-8-14 23:16 | 显示全部楼层
GpioDataRegs.GPASET.bit.GPIO2 &= 0;这个是干什么的?
biechedan 发表于 2013-8-14 23:17 | 显示全部楼层
你的上拉电阻大了点,试试10K
 楼主| zhangdan1986 发表于 2014-2-19 21:29 | 显示全部楼层
已找到解决办法
zhangmangui 发表于 2014-2-19 22:54 | 显示全部楼层
zhangdan1986 发表于 2014-2-19 21:29
已找到解决办法

分享一下吧  
 楼主| zhangdan1986 发表于 2014-2-20 09:49 | 显示全部楼层
zhangmangui 发表于 2014-2-19 22:54
分享一下吧

好的,在这里
http://www.eeboard.com/bbs/thread-16835-1-1.html
这个帖子
阳光依旧笑春风 发表于 2015-11-23 11:00 | 显示全部楼层
EDIS;      //禁止访问受保护的空间
   GpioDataRegs.GPASET.bit.GPIO12 == 0;这句是什么意思?看不懂。
angerbird 发表于 2015-11-23 17:02 | 显示全部楼层
这个可能还是所用的电阻的匹配问题的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

58

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部