在单步调试GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE, GPIO_PIN_4|GPIO_PIN_5 );时,看反汇编代码,发现程序根本就在GPIODirModeSet子程序和GPIOPadCongfigSet子程序中不会发生跳转,只要是出现TST指令,下一句指令肯定就是ITE EQ 所以程序就一直顺序执行下去。虽然最后结果方向寄存器结果正确,我还是感觉不太正常。另外,ITE EQ 是什么指令,没有查到相关的信息。或许IO口没有输出就是与此有关??
void delay() //程序延时 { int i=500000; while(i>0) { i--; } }
int main(void) { int i=0; SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_6MHZ);//初始化时钟
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);//初始化GPIO口PD GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE,GPIO_PIN_4|GPIO_PIN_5);//设置PD1,PD2,PD3为输出
while(1) { GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_4,0xff); GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_5,0); delay(); GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_4,0xff); GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_5,0); i++; delay();
} }
|