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

📄 uart.h

📁 FAT32文件系统的存储机制及其在单片机上的实现,已通过
💻 H
字号:
//UART 相关函数------------------------

/*----------------------------------------------
函数名:UART_Init()
功能:   串口初始化
        通讯有关参数初始化
        将串口波特率设定为9600bps(TC35i专用波特率)
作者:  于振南
-----------------------------------------------*/

void UART_Init()        /* 通讯有关参数初始化 */
{
    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  优先级 */
    EA=1;
    ET1=0;
    SM0=0;
    SM1=1;      /* SM0=0 SM1=1,mode1,10bit          */
    SM2=0;      /* data int,无校验(TB8=bit_duble偶) */
    TR1=1;
    REN=1;
    RI=0;
    TI=0;
    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(double dat,char *s,unsigned char jd)
{
 int len,temp,flag=dat<0?dat=-dat,1:0,i;
 char t[30];
 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;
}

/*--------------------------------------------
 函数名:szzh16()
 功能  :将datax按16进制转成字符串,存于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 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)
{
 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 + -