TI中文支持网
TI专业的中文技术问题搜集分享网站

launchpad用K2控制D2,用K4控制D3,现在只能实现前一个,如果用注释里的程序就可以,为什么?注释部分实现的是相同的功能,不理解,

void Key2IntHandler(void)
{
   GPIOIntClear(GPIO_PORTF_BASE,GPIO_INT_PIN_4);
   if(GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_0))
           GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,0<<0);
       else
           GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,1<<0);
}
void Key4IntHandler(void)
{
    GPIOIntClear(GPIO_PORTA_BASE,GPIO_INT_PIN_2);
    if(GPIOPinRead(GPIO_PORTA_BASE,GPIO_PIN_4))
               GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,0<<0);
           else
               GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,1<<0);
    /*GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,
       (0x10^GPIOPinRead(GPIO_PORTA_BASE,GPIO_PIN_4)));*/
}
main(void)
{
    SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
                       SYSCTL_XTAL_16MHZ);
    //设置系统时钟50MHZ;
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
    //使能外设
    HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY;
    HWREG(GPIO_PORTF_BASE + GPIO_O_CR) |= 0x01;
    HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = 0;
    //解锁PF0
    GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_0);
    GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, GPIO_PIN_4);//D2,D3
    GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_0,0);
    GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,0);
    //配置并初始化
    GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_4);
    GPIOPinTypeGPIOInput(GPIO_PORTA_BASE, GPIO_PIN_2);
    GPIOIntTypeSet(GPIO_PORTF_BASE,GPIO_PIN_4,GPIO_FALLING_EDGE);
    GPIOIntTypeSet(GPIO_PORTA_BASE,GPIO_PIN_2,GPIO_FALLING_EDGE);
    GPIOIntEnable(GPIO_PORTF_BASE,GPIO_INT_PIN_4);
    GPIOIntEnable(GPIO_PORTA_BASE,GPIO_INT_PIN_2);
    IntMasterEnable();
    IntPrioritySet(INT_GPIOA,1);
    IntPrioritySet(INT_GPIOF,0);
    GPIOIntRegister(GPIO_PORTF_BASE, Key2IntHandler);
    GPIOIntRegister(GPIO_PORTA_BASE, Key4IntHandler);
    while(1)
    {
    }
}
xyz549040622:

配置为输出的时候,是可以读状态的吗?我没有这样做过。

user5362661:

回复 xyz549040622:

但是两个程序里面都用到了读引脚的函数

xyz549040622:

回复 user5362661:

也是,奇怪,我这里实际测试看看。

user5362661:

回复 xyz549040622:

我明白了,那个没注释那部分是错的,引脚一直是低电平, GPIOPinWrite(GPIO_PORTA_BASE,GPIO_PIN_4,GPIO_PIN_4);才是高电平,~~~~
谢谢啦

xyz549040622:

回复 user5362661:

我看错标题了,我说么,注释的那部分是没有任何问题的,看成你的问题是注释的问题。对,TIVA和别的不一样,写高电平的参数是GPIO_PIN_x,写低电平的参数是0x00.

赞(0)
未经允许不得转载:TI中文支持网 » launchpad用K2控制D2,用K4控制D3,现在只能实现前一个,如果用注释里的程序就可以,为什么?注释部分实现的是相同的功能,不理解,
分享到: 更多 (0)