[求助] 读取管脚GPIOPinRead(),读不出来啊!

wsw92   2014-8-31 11:29 楼主
我使用了gpio=GPIOPinRead(GPIO_PORTD_BASE, GPIO_PIN_7);对管脚进行读取,但是外部给pd7高电平了,读的数据都是零,求大神解!

回复评论 (10)

对 GPIO PD7 的配置检查一下,时钟,输入输出方向等
点赞  2014-8-31 19:19
luchpad的D7口是有问题的,你换个引脚口就好了。
点赞  2014-9-1 07:27
貌似D6也有问题。
点赞  2014-9-1 07:28
引用: F.N.尼采 发表于 2014-9-1 07:28
貌似D6也有问题。

errta 手册上有指出来吗?
点赞  2014-9-1 10:07
引用: Study_Stellaris 发表于 2014-9-1 10:07
errta 手册上有指出来吗?

没查那个手册。但是使用的时候配置了寄存器,单步的时候寄存器的配置是正确的,但是还是不能用。所以觉得引脚出问题了。你说的手册是官网刚出的?

点赞  2014-9-1 10:13
仔细看看手册应该有帮助的,不知道你用的是什么信号的芯片。
以下内容供参考:
2.JPG
点赞  2014-9-1 15:13
如果你使用的芯片的PD7刚好是NMI引脚,是需要解锁后才能作为普通的GPIO来配置使用的。
点赞  2014-9-1 15:13
PC3-0, PD7, PF0 這些PIN是需要解鎖的.
点赞  2014-9-2 17:50
正好在做电机测速,         
  //GPIOE3作为脉冲1信号的输入
        SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
                GPIODirModeSet(GPIO_PORTE_BASE, GPIO_PIN_3, GPIO_DIR_MODE_IN);
                GPIOPadConfigSet(GPIO_PORTE_BASE, GPIO_PIN_3,GPIO_STRENGTH_2MA,GPIO_PIN_TYPE_STD_WPU );

while(1)
    {//当读入的计数脉冲信号没有翻转时,始终读取该信号
                while(GPIOPinRead(GPIO_PORTE_BASE,GPIO_PIN_3)!=status)
                {
            cnt2++;

                }
                                cnt1++;
                   status = 1-status;
//若信号翻转,则计数加1,同时改变status为当前状态值,等待下
//一次翻转,这样得以保证每一个上升沿和下降沿都被计数。
  }

但是发现GPIOPinRead(GPIO_PORTE_BASE,GPIO_PIN_3)读回来的全部都是0,结果就没预想的一样能记录脉冲个数了。(光编是有脉冲发回来的。)
看到的大神能指点一下。
点赞  2015-1-17 11:10
需要解锁!!具体解锁程序网上有,以前搜到过
点赞  2015-1-23 19:52
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复