#include "uart.h" /********************************************************/ /*uart base config*/ #define UART_BPS 115200 #define UART_DATABITS 8 #define UART_STOPBITS 1 extern void irq_uart(void); void uart_init(void) { u32 fdiv; /*1.select pin*/ PINSEL0=(PINSEL0&(~0x0F))|0x05; /*2.uart register config*/ UxLCR0=(UART_DATABITS-5)|((UART_STOPBITS-1)<<2)|(1<<7); fdiv=(Fpclk/16)/UART_BPS; UxDLL0=fdiv%256; UxDLM0=fdiv/256; UxLCR0=(UART_DATABITS-5)|((UART_STOPBITS-1)<<2); } void irq_init(void) { UxIER0=0x01; UxFCR0=0x01; IrqEnable(); VICIntSelect=0x0; VICVectCntl0=0x20|0x06; VICVectAddr0=(u32)irq_uart; VICIntEnable=1<<0x06; } void uart_SendByte(u8 c) { while((UxLSR0&0x20)==0); UxTHR0=c; } void timedelay(void) { int i,j; for(i=1000;i>0;i--) for(j=1000;j>0;j--); } void uart_SendStr(u8* str) { while(*str!='\0') { uart_SendByte(*str++); } // timedelay(); }