[求助] keil4调试EK-LM3S811-ND突然程序烧不进去,提示找不到器件

charity2030   2012-3-7 18:10 楼主
keil4调试EK-LM3S811-ND突然程序烧不进去,提示找不到器件

调了几个简单的程序用Keil4可以烧入,完全正常。烧了一次下面的程序后,以后就烧不进去了,提示没有器件实在不知道什么原因,请各位高手指到。

程序是这样的:

#include"hw_ints.h"
#include"hw_memmap.h"
#include"hw_types.h"
#include"debug.h"
#include"gpio.h"
#include"sysctl.h"
#include"uart.h"
#include"uart.h"
#include "interrupt.h"

#define  PIN0 GPIO_PIN_0
#define  PIN1 GPIO_PIN_1

#define PIN4  GPIO_PIN_4
#define PIN5  GPIO_PIN_5

#ifdef DEBUG
  void _error_(char *pcFilemane,unsigned long ulLine)
  {
  }
#endif

void UARTIntHander(void)
{
  unsigned  long ulStatus;
  ulStatus=UARTIntStatus(UART0_BASE,true);
  UARTIntClear(UART0_BASE,ulStatus);
  while(UARTCharsAvail(UART0_BASE))
  {     
    UARTCharPutNonBlocking(UART0_BASE,UARTCharGetNonBlocking(UART0_BASE));
  }                   
}
void UARTSend(const unsigned char *pucBuffer,unsigned long ulCount)
{
  while(ulCount--)
  {
   UARTCharPutNonBlocking(UART0_BASE,*pucBuffer++);
  }

}

int main(void)
{
  SysCtlClockSet(SYSCTL_SYSDIV_1|SYSCTL_USE_OSC|SYSCTL_OSC_MAIN|SYSCTL_XTAL_6MHZ);
  SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA|SYSCTL_PERIPH_GPIOC);

  SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
 
  GPIOPadConfigSet(GPIO_PORTA_BASE|GPIO_PORTC_BASE,PIN1|PIN5,GPIO_STRENGTH_2MA,GPIO_PIN_TYPE_STD);
  GPIOPadConfigSet(GPIO_PORTA_BASE|GPIO_PORTC_BASE,PIN0|PIN4,GPIO_STRENGTH_2MA,GPIO_PIN_TYPE_STD_WPU);
  GPIODirModeSet(GPIO_PORTA_BASE|GPIO_PORTC_BASE,PIN1|PIN5,GPIO_DIR_MODE_OUT);
  GPIODirModeSet(GPIO_PORTA_BASE|GPIO_PORTC_BASE,PIN0|PIN4,GPIO_DIR_MODE_IN);

  GPIOPinTypeUART(GPIO_PORTA_BASE,PIN1|PIN0);
  UARTConfigSetExpClk(UART0_BASE,SysCtlClockGet(),1200,(UART_CONFIG_WLEN_8|UART_CONFIG_STOP_ONE|UART_CONFIG_PAR_NONE));
 
  UARTIntEnable(UART0_BASE,UART_INT_RX|UART_INT_RT);
  GPIOPinIntEnable(GPIO_PORTC_BASE,PIN4);
  IntEnable(INT_UART0|INT_GPIOC);
  IntMasterEnable();
 
  UARTSend((unsigned char *)"ENTER TEXT:",13);
  while(1)
  {
    }
}

key.c
#include"hw_ints.h"
#include"hw_memmap.h"
#include"hw_types.h"
#include"debug.h"
#include"gpio.h"
#include"sysctl.h"
#include"uart.h"
#include"uart.h"
#include "interrupt.h"

#define PIN4  GPIO_PIN_4
#define PIN5  GPIO_PIN_5

void delay(unsigned long delay1)
{//unsigned char i;
for(;delay1;--delay1);
}


 void GPIO_C_ISR(void)
{
  unsigned char ucVal;
  unsigned long ulStatus;
  ulStatus=GPIOPinIntStatus(GPIO_PORTC_BASE,true);
  GPIOPinIntClear(GPIO_PORTC_BASE,ulStatus);
   if(ulStatus&PIN4)
   {
 ucVal=GPIOPinRead(GPIO_PORTC_BASE,PIN5);
 GPIOPinWrite(GPIO_PORTC_BASE,PIN5,0x20);
  delay(200000);
 //SysCtlDelay(10*(TheSysClock/3000));
 while(GPIOPinRead(GPIO_PORTC_BASE,PIN4)==0x00);
 //SysCtlDelay(10*(TheSysClock/3000));
 //delay(200000);
 GPIOPinWrite(GPIO_PORTC_BASE,PIN5,~0x20);
     delay(200000);
   }            

}    

Startup.s 中改了

驱动图:

错误提示图:

 

 

调试设置:


有没有可能是FLASH 被写保护了

回复评论 (7)

楼主C0,C1,C2,C3是JTAG引脚,JTAG引脚被改成GPIO引脚了。

 

楼主换块811再试试吧。

111.JPG

点赞  2012-3-8 13:40

回复 楼主 charity2030 的帖子

找不到设备,一般应该是仿真器驱动的问题,检查一下驱动先。
点赞  2012-3-8 14:49
可能被锁了
点赞  2012-3-8 18:46

恩,肯定是锁了,没办法换芯片吧

http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
点赞  2012-3-8 19:08
不一定的,重新拨插一下USB
点赞  2012-3-8 20:25
锁了,换芯片吧
点赞  2012-3-8 20:26
如果被锁住了,应该不是提示找不到设备。
点赞  2012-3-9 15:59
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复