有多种方法您可以试试:<br /> 重新连接、重装Cross软件、重启电脑,等等。<br /><br />如果上述手段不能奏效,则有可能是程序当中误用了与JTAG接口复用的GPIO管脚。如果是这样,则只能换颗芯片了。以后在程序里防止JTAG失效的一种方法是:专门选定一个GPIO管脚作为按键输入,复位时如果不按键则正常工作,否则进入死循环以等待JTAG连接。以下是参考例程:<br /><br />#include "hw_types.h"<br />#include "hw_memmap.h"<br />#include "hw_sysctl.h"<br />#include "hw_gpio.h"<br />#include "src/sysctl.h"<br />#include "src/gpio.h"<br /><br />#define SysCtlPeriEn SysCtlPeripheralEnable<br />#define GPIOPinTypeIn GPIOPinTypeGPIOInput<br />#define GPIOPinTypeOut GPIOPinTypeGPIOOutput<br /><br />#define LED GPIO_PORTB_BASE, GPIO_PIN_0<br />#define KEY_JTAG GPIO_PORTA_BASE, GPIO_PIN_2<br /><br />void waitJTAG (void)<br />{<br /> SysCtlPeriEn(SYSCTL_PERIPH_GPIOA); // 使能GPIOA端口<br /> GPIOPinTypeIn(KEY_JTAG); // 设置按键所在的PA2管脚为输入<br /> if ( GPIOPinRead(KEY_JTAG) == 0x00 ) { // 如果有键按下,则进入<br /> for (;;); // 死循环,以等待JTAG连接<br /> }<br />}<br /><br />void timeDelay (unsigned long ulVal)<br />{<br /> do {<br /> } while ( --ulVal != 0 ) ;<br />}<br /><br />int main (void)<br />{<br /> unsigned char ucPins = 0x00;<br /><br /> waitJTAG( ); // 防止JTAG失效<br /> SysCtlPeriEn(SYSCTL_PERIPH_GPIOB); // 使能GPIOB端口<br /> GPIOPinTypeOut(LED); // 设置LED所在管脚为输出<br /><br /> for (;;) {<br /> GPIOPinWrite(LED, ucPins); // 使LED不断闪烁发光<br /> ucPins ^= 0x01;<br /> timeDelay(200000UL);<br /> }<br />}<br />
|