在单步调试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();
}
}