打印

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

[复制链接]
1840|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 | 只看该作者
已找到解决办法

使用特权

评论回复
5
zhangmangui| | 2014-2-19 22:54 | 只看该作者
zhangdan1986 发表于 2014-2-19 21:29
已找到解决办法

分享一下吧  

使用特权

评论回复
6
zhangdan1986|  楼主 | 2014-2-20 09:49 | 只看该作者
zhangmangui 发表于 2014-2-19 22:54
分享一下吧

好的,在这里
http://www.eeboard.com/bbs/thread-16835-1-1.html
这个帖子

使用特权

评论回复
7
阳光依旧笑春风| | 2015-11-23 11:00 | 只看该作者
EDIS;      //禁止访问受保护的空间
   GpioDataRegs.GPASET.bit.GPIO12 == 0;这句是什么意思?看不懂。

使用特权

评论回复
8
angerbird| | 2015-11-23 17:02 | 只看该作者
这个可能还是所用的电阻的匹配问题的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

58

帖子

0

粉丝