?? uart.h
字號:
//UART 相關(guān)函數(shù)------------------------
/*----------------------------------------------
函數(shù)名:UART_Init()
功能: 串口初始化
通訊有關(guān)參數(shù)初始化
將串口波特率設(shè)定為9600bps(TC35i專用波特率)
作者: 于振南
-----------------------------------------------*/
void UART_Init() /* 通訊有關(guān)參數(shù)初始化 */
{
PCON&=0x7f;
TH1=0xfd; /* T1 use sio */
TL1=0xfd; /* 選擇通訊速率:0=1200,1=2400,2=4800,3=9600,4=19.2k */
/* T1 use sio */
TMOD=0x21; /* T1=MODE2,sio; T0=MODE1,16bit,use time */
PS=1; /* SIO int high 優(yōu)先級 */
EA=1;
ET1=0;
SM0=0;
SM1=1; /* SM0=0 SM1=1,mode1,10bit */
SM2=0; /* data int,無校驗(yàn)(TB8=bit_duble偶) */
TR1=1;
REN=1;
RI=0;
TI=0;
ES=1;
}
/*-------------------------------------------------------
函數(shù)名:send()
功能:用戶函數(shù),發(fā)送一個字節(jié)的數(shù)據(jù)
作者:于振南
----------------------------------------------------------*/
void send(unsigned char mydata)
{
ES=0;
TI=0;
SBUF=mydata;
while(!TI);
TI=0;
ES=1;
}
/*-------------------------------------------------------
函數(shù)名:send_s()
功能:用戶函數(shù),發(fā)送一個字符串
作者:于振南
----------------------------------------------------------*/
void send_s(char *s)
{
int len=strlen(s);
int i;
for(i=0;i<len;i++)
send(s[i]);
send(0x0d);
send(0x0a);
}
/*----------------------------------------------------
函數(shù)名:ftoa()
功能 :將一個浮點(diǎn)數(shù)轉(zhuǎn)為一個精度為jd的字符串,存于s中
------------------------------------------------------*/
char * ftoa(float dat,char *s,unsigned char jd)
{
int len,temp,flag=dat<0?dat=-dat,1:0,i;
char t[10];
temp=(int)dat;
for(len=0;temp>0;temp/=10,len++)
t[len]=temp%10+48;
for(i=0;i<=len;i++)
s[len-i-1]=t[i];
s[len++]='.';
for(i=0,temp=(int)((dat-(int)dat)*pow(10,jd));temp>0;temp/=10,i++)
t[i]=temp%10+48;
for(i=0;i<jd;i++)
s[len++]=t[jd-i-1];
s[len++]=0x0d;
s[len++]=0x0a;
s[len]=0;
return s;
}
/*--------------------------------------------
函數(shù)名:szzh16()
功能 :將datax按16進(jìn)制轉(zhuǎn)成字符串,存于p中
---------------------------------------------*/
int szzh16(unsigned char datax, char *p)
{
unsigned char temp;
temp=datax;
p[0]=((temp>>4)>=10)?(temp>>4)+55:(temp>>4)+48;
p[1]=((temp&0x0f)>=10)?(temp&0x0f)+55:(temp&0x0f)+48;
p[2]=0;
return 1;
}
void PutHex(unsigned char x)
{
unsigned char temp[10];
szzh16(x,temp);
send_s(temp);
}
//UART----END-------------------------------
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -