调了几个简单的程序用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 中改了
驱动图:
错误提示图: 调试设置: |
|