|
所以说,在您的源程序里插入预防JTAG失效的代码是非常有必要的,要在main()函数的一开始就要调用预防JTAG失效的代码。下面是个典型的例子,请大家参考:<br /><br />#include <hw_types.h><br />#include <hw_memmap.h><br />#include <hw_sysctl.h><br />#include <hw_gpio.h><br />#include <sysctl.h><br />#include <gpio.h><br /><br /><br />#define SysCtlPeriEn SysCtlPeripheralEnable<br />#define SysCtlPeriDis SysCtlPeripheralDisable<br />#define GPIOPinTypeIn GPIOPinTypeGPIOInput<br />#define GPIOPinTypeOut GPIOPinTypeGPIOOutput<br /><br />#define KEY_PORT SYSCTL_PERIPH_GPIOA<br />#define KEY_PIN GPIO_PORTA_BASE , GPIO_PIN_2<br />#define KeyGet() GPIOPinRead(KEY_PIN)<br /><br />#define LED_PORT SYSCTL_PERIPH_GPIOB<br />#define LED_PIN GPIO_PORTB_BASE , GPIO_PIN_4<br /><br />#define LedOn() GPIOPinWrite(LED_PIN , 0 << 4)<br />#define LedOff() GPIOPinWrite(LED_PIN , 1 << 4)<br /><br /><br />// 防止JTAG失效<br />void WaitJTAG(void)<br />{<br /> SysCtlPeriEn(KEY_PORT); // 使能按键所在的GPIO端口<br /> GPIOPinTypeIn(KEY_PIN); // 设置按键所在的管脚为输入<br /> if ( KeyGet() == 0x00 ) // 如果有键按下,则进入<br /> {<br /> for (;;); // 死循环,以等待JTAG连接<br /> }<br /> SysCtlPeriDis(KEY_PORT); // 禁止按键所在的GPIO端口<br />}<br /><br /><br />// 延时<br />void TimeDelay(unsigned long ulVal)<br />{<br /> while ( --ulVal != 0 );<br />}<br /><br /><br />int main(void)<br />{<br /> WaitJTAG(); // 防止JTAG失效<br /> SysCtlPeriEn(LED_PORT); // 使能LED所在的GPIO端口<br /> GPIOPinTypeOut(LED_PIN); // 设置LED所在管脚为输出<br /> for (;;)<br /> {<br /> LedOn(); // 点亮LED<br /> TimeDelay(100000UL);<br /> LedOff(); // 熄灭LED<br /> TimeDelay(500000UL);<br /> }<br />}<br /><br /><br />如果JTAG接口已经被锁定了,则可以试着把LM LINK的通信速率由500K降为50K或更低来试试,如果还是不行就只有返修了。<br /><br />(zlgmcu_wdx)
|