⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uart.c

📁 lcd显示汉字,基于arm的开发文档。里面有字库
💻 C
字号:
/*uart prog */






/* UART uart1*/
/*#define rULCON0			(*(volatile unsigned *)0x50000000)
#define rUCON0			(*(volatile unsigned *)0x50000004)
#define rUFCON0			(*(volatile unsigned *)0x50000008)
#define rUMCON0			(*(volatile unsigned *)0x5000000C)
#define rUTRSTAT0		(*(volatile unsigned *)0x50000010)
#define rUERSTAT0		(*(volatile unsigned *)0x50000014)
#define rUFSTAT0		(*(volatile unsigned *)0x50000018)
#define rUMSTAT0		(*(volatile unsigned *)0x5000001C)
#define rUBRDIV0		(*(volatile unsigned *)0x50000028)
#define rUTXH0			(*(volatile unsigned char *)0x50000020)
#define rURXH0			(*(volatile unsigned char *)0x50000024)*/

/* IO */
/*#define rGPHCON			(*(volatile unsigned *)0x56000070)
#define rGPHDAT			(*(volatile unsigned *)0x56000074)
#define rGPHUP			(*(volatile unsigned *)0x56000078)*/


#include "s3c2410_addr.h"

void uart_init(void)
{
 	int i;   
      
   // clock_init();
    rUFCON0 = 0x06;
    rUMCON0 = 0x0;
    /* Normal,No parity,1 stop,8 bit */
    rULCON0 = 0x3;
    /*
     * tx=level,rx=edge,disable timeout int.,enable rx error int.,
     * normal,interrupt or polling
     */
    rUCON0 = 0x305;//0x245
    rUBRDIV0 = 27;

    /*config IO port*/ 
    rGPHCON = 0x002AAAAA;//0X002AFAAA
    rGPHUP  = 0x000007FF;
    for(i=0;i<100;i++);
}



void uart_send( char *c)
{
	for(;*c!='\0';c++)
	{
    /* wait for room in the tx FIFO on SERIAL1 */
    while(!(rUTRSTAT0 & 0x02));

    rUTXH0 = *c;
    }
}


char Uart_Getch(void)
{
     while(!(rUTRSTAT0 & 0x1)); //Receive data ready
        return RdURXH0();
  
}


char getkey(void)
{
	int whichUart=0;
    if(whichUart==0)
    {       
        if(rUTRSTAT0 & 0x1)    //Receive data ready
            return RdURXH0();
        else
            return 0;
    }
    else if(whichUart==1)
    {
        if(rUTRSTAT1 & 0x1)    //Receive data ready
            return RdURXH1();
        else
            return 0;
    }
    else if(whichUart==2)
    {       
        if(rUTRSTAT2 & 0x1)    //Receive data ready
            return RdURXH2();
        else
            return 0;
    }    
    return 0;	


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -