主文件代码:
/* This file is part of the uVision/ARM development tools */ /* Copyright KEIL ELEKTRONIK GmbH 2002-2004 */ /******************************************************************************/ /* */ /* HELLO.C: Hello World Example */ /* */ /******************************************************************************/ #include <stdio.h> /* prototype declarations for I/O functions */ #include <LPC21xx.H> /* LPC21xx definitions */ /****************/ /* main program */ /****************/ int main (void) { /* execution starts here */ /* initialize the serial interface */ PINSEL0 = 0x00050000; /* Enable RxD1 and TxD1 */ U1LCR = 0x83; /* 8 bits, no Parity, 1 Stop bit */ U1DLL = 97; /* 9600 Baud Rate @ 15MHz VPB Clock */ U1LCR = 0x03; /* DLAB = 0 */ printf ("Hello World\n"); /* the 'printf' function call */ while (1) { /* An embedded program does not stop and */ ; /* ... */ /* never returns. We've used an endless */ } /* loop. You may wish to put in your own */ } /* code were we've printed the dots (...). */ 串口程序代码: /******************************************************************************/ /* This file is part of the uVision/ARM development tools */ /* Copyright KEIL ELEKTRONIK GmbH 2002-2004 */ /******************************************************************************/ /* */ /* SERIAL.C: Low Level Serial Routines */ /* */ /******************************************************************************/ #include <LPC21xx.H> /* LPC21xx definitions */ #define CR 0x0D int putchar (int ch) { /* Write character to Serial Port */ if (ch == '\n') { while (!(U1LSR & 0x20)); U1THR = CR; /* output CR */ } while (!(U1LSR & 0x20)); return (U1THR = ch); } int getchar (void) { /* Read character from Serial Port */ while (!(U1LSR & 0x01)); return (U1RBR); }

浙公网安备 33010602011771号