TM4C123GH6PM的launchpad
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
GPIOPinTypeGPIOInput(GPIO_PORTC_BASE, GPIO_PIN_7);
GPIOPadConfigSet(GPIO_PORTC_BASE, GPIO_PIN_7, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);
GPIOPinTypeGPIOInput(GPIO_PORTD_BASE, GPIO_PIN_7 | GPIO_PIN_6);
GPIOPadConfigSet(GPIO_PORTD_BASE, GPIO_PIN_7 | GPIO_PIN_6, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);
有PC7,PD6,PD7三个做按钮,按钮另一端直接接地所以想把GPIO设置为上拉。
运行调试后PC7与PD6都有悬空3.3V,debug中看gpio_data对应位数也为高。但PD7是1.3V,GPIO_data对应位也一直是0。
我换了一块launchpad试了一下这个程序,结果也是这样的。请问我这程序是哪里出了问题?
2014-2-16更新
今天在程序后加了条程序调试
HWREG(GPIO_PORTD_BASE + GPIO_O_PUR) =(HWREG(GPIO_PORTD_BASE + GPIO_O_PUR) | 0xC0);
汇编执行到这里更新后寄存器0x40007510只从0x00000000变到了0x00000040,不是C0啊。翻了一下User guide,没看到说PD需要特殊的初始化。