我使用了gpio=GPIOPinRead(GPIO_PORTD_BASE, GPIO_PIN_7);对管脚进行读取,但是外部给pd7高电平了,读的数据都是零,求大神解!
对 GPIO PD7 的配置检查一下,时钟,输入输出方向等
luchpad的D7口是有问题的,你换个引脚口就好了。
没查那个手册。但是使用的时候配置了寄存器,单步的时候寄存器的配置是正确的,但是还是不能用。所以觉得引脚出问题了。你说的手册是官网刚出的?
仔细看看手册应该有帮助的,不知道你用的是什么信号的芯片。
以下内容供参考:
如果你使用的芯片的PD7刚好是NMI引脚,是需要解锁后才能作为普通的GPIO来配置使用的。
PC3-0, PD7, PF0 這些PIN是需要解鎖的.
正好在做电机测速,
//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,结果就没预想的一样能记录脉冲个数了。(光编是有脉冲发回来的。)
看到的大神能指点一下。