📄 uart.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 + -