📄 uart.c
字号:
//UART 相关函数------------------------
/*----------------------------------------------
函数名:UART_Init()
功能: 串口初始化
通讯有关参数初始化
将串口波特率设定为9600bps(TC35i专用波特率)
作者: 于振南
-----------------------------------------------*/
#include "uart.h"
void UART_Init() /* 通讯有关参数初始化 */
{
ES=0;
SCON=0x50;
T2CON=0x34;
RCAP2H=0xFF;
RCAP2L=0xD8;//0xB2//D8
ES=1;
}
/*-------------------------------------------------------
函数名:send()
功能:用户函数,发送一个字节的数据
作者:于振南
----------------------------------------------------------*/
void send(unsigned char mydata)
{
ES=0;
TI=0;
SBUF=mydata;
while(!TI);
TI=0;
ES=1;
}
/*-------------------------------------------------------
函数名:send_s()
功能:用户函数,发送一个字符串
作者:于振南
----------------------------------------------------------*/
void send_s(char *s)
{
int len=strlen(s);
int i;
for(i=0;i<len;i++)
send(s[i]);
send(0x0d);
send(0x0a);
}
/*----------------------------------------------------
函数名:ftoa()
功能 :将一个浮点数转为一个精度为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;
}
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 PutLong(unsigned long dat)
{
while(dat)
{
send(dat%10+0x30);
dat/=10;
}
}
void PutHex(unsigned char x)
{
unsigned char temp[10];
szzh16(x,temp);
send_s(temp);
}
void Printf(char *s,unsigned long d)
{
while(*s != '\0')
{
send(*s++);
}
send(':');
send(' ');
send(d/1000+0x30);
send(d%1000/100+0x30);
send(d%1000%100/10+0x30);
send(d%1000%100%10+0x30);
send('\n');
send('\r');
//unsigned char temp[30];
//send_s(s);
//PutLong(d);
}
void Printf_File_Name(unsigned char *p)
{
unsigned char temp[12];
unsigned char i;
for(i=0;i<11;i++)
{
temp[i]=p[i];
}
temp[i]=0;
send_s(temp);
}
//UART----END-------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -