📄 serial.c
字号:
#include <stdio.h>
#include <stdarg.h>
#include "s3c4510.h"
#include "datatype.h"
#include "serial.h"
#include "timer.h"
/*************************************************/
U8 UartGetch(U8 ch)
{
if(!ch)
{
while(!(inportb(USTAT0)&RX_READY));
return inportb(URXBUF0);
}
else
{
while(!(inportb(USTAT1)&RX_READY));
return inportb(URXBUF1);
}
}
/************************************************/
void UartSendByte(U8 ch, U8 data)
{
if(!ch)
{
if(ch=='\n')
{
while(!(inportb(USTAT0)&TX_COMPLETE));
Delay(10);
outport(UTXBUF0, '\r');
}
while(!(inportb(USTAT0)&TX_COMPLETE));
Delay(10);
outport(UTXBUF0, data); //must use outport
}
else
{
if(ch=='\n')
{
while(!(inportb(USTAT1)&TX_COMPLETE));
Delay(10);
outport(UTXBUF1, '\r');
}
while(!(inportb(USTAT1)&TX_COMPLETE));
Delay(10);
outport(UTXBUF1, data);
}
}
/****************************************************************************
【功能说明】向串行口发送一个字符串,ch为0向UART0发送,ch为1向UART1发送
****************************************************************************/
void UartSendString(U8 ch, char *pt)
{
while(*pt)
{
UartSendByte(ch, *pt++);
Delay(20);
}
}
/****************************************************************************
【功能说明】以标准格式printf向串行口发送一个字符串
ch为0向UART0发送,ch为1向UART1发送。(如果不用vsprintf代码会减小很多!)
****************************************************************************/
void UartPrintf(U8 ch, char *fmt, ...)
{
va_list ap;
char string[256];
va_start(ap, fmt);
vsprintf(string, fmt, ap);
UartSendString(ch, string);
va_end(ap);
}
void Printf(char *fmt, ...)
{
va_list ap;
char string[256];
va_start(ap, fmt);
vsprintf(string, fmt, ap);
UartSendString(USEDCOM, string);
va_end(ap);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -