亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? uart-51.c

?? 51雙串口通訊程序
?? C
字號(hào):
/*=========================================================
  *				開發(fā)環(huán)境:Keil uVision3					*
  *				軟件名稱:					*
  *				開發(fā)日期:2007/1/10						*
  *				開 發(fā) 者:LPC							*
=========================================================*/
/**********************************************************
*				通信部分技術(shù)說(shuō)明
*	時(shí)鐘頻率:	11.0592MHz
*	波特率:	9600
*	串口模式:	模式3
**********************************************************/
/*加入頭文件*/
#include<W77C32.h>											//W77E58頭文件
#include<intrins.h>											//
#include<stdio.h>											//
#include<stdlib.h>											//
#include<TYPE.H>											//聲明定義
#include<OUTTYPE.H>											//聲明字庫(kù)
#include<INCLUDES.H>										//聲明所有子函數(shù)
//=======================================================//
/*******************串口0通信函數(shù)開始*********************/
//=======================================================//

/*=========================================================
函數(shù)名:Uart_Checksum()
功能:通信數(shù)據(jù)發(fā)送函數(shù)
入口參數(shù):無(wú)
出口參數(shù):校驗(yàn)和(2字節(jié))
=========================================================*/
Uint Uart_Checksum(void)
{
	Uchar z,r;												//聲明變量
	Uint Checksum=0;										//聲明變量
	z=Com[5]+4;												//提取數(shù)據(jù)長(zhǎng)度
	for(r=4;r<z;r++)
	{
		Checksum+=(Uint)Com[r];								//計(jì)算累加和
	}
	return Checksum;										//返回校驗(yàn)和
}

/*=========================================================
函數(shù)名:Uart0_DownSend()
功能:485通信發(fā)送函數(shù)
入口參數(shù):無(wú)
出口參數(shù):無(wú)
=========================================================*/
void Uart0_DownSend(void)
{
	Uchar i,l;												//聲明變量
	Com485=1;												//啟動(dòng)發(fā)送
	l=Com[5];												//提取數(shù)據(jù)長(zhǎng)度
	for(i=0;i<l+6;i++)
	{
	    TB8=1;
		TI=0;												//清除發(fā)送空標(biāo)志
		SBUF=Com[i];										//將Com0所指數(shù)據(jù)送發(fā)送緩沖
		while(!TI);											//查看是否發(fā)送完畢
	}
	Com485=0;												//啟動(dòng)接收
}

/*=========================================================
函數(shù)名:Uart0_DownReceiveCom()
功能:下行通信接收函數(shù)
入口參數(shù):無(wú)
出口參數(shù):接收狀態(tài)信息(1字節(jié))
=========================================================*/
Uchar Uart0_DownReceiveCom(void)
{
	Uchar i,l;												//聲明變量
	Uint p,sum;												//聲明變量
	Ulong s;												//聲明變量
	Com485=0;												//485接收使能
	for(i=0;i<16;i++)
	{
		Com[i]=0;
	}
	s=0;													//初始化變量
	while(1)												//等待接收
	{
		if(RI)						   				        //等待接收響應(yīng)
		{
			Com[0]=SBUF;									//移出接收數(shù)據(jù)
			RI=0;											//清除接收標(biāo)志位
			if(Com[0]=='H')									//判斷頭字節(jié)'H'
			{
				break;
			}
		}
		s++;												//變量+1
		if(s>0x0000A000)									//如果超時(shí)2s
		{
			return UART_ERR_NOPRECEIVE;						//跳轉(zhuǎn)
		}
	}
	for(i=1;i<0x06;i++)										//先接收頭字節(jié)以及類型和長(zhǎng)度
	{
		p=0;												//初始化變量
		while(!RI)											//等待接收響應(yīng)
		{
			p++;											//防止接收死循環(huán)
			if(p>1000)										//防止死循環(huán)條件
			{
				break;										//放棄該字節(jié)接收
			}
		}
		Com[i]=SBUF;										//移出接收數(shù)據(jù)
		RI=0;												//清除接收標(biāo)志位
	}
	if(Com[1]!='E')											//判斷頭字節(jié)'E'
	{
		return UART_ERR_HEAD2RECEIVE;						//返回頭字節(jié)2接收錯(cuò)誤
	}
	if(Com[2]!='A')											//判斷頭字節(jié)'A'
	{
		return UART_ERR_HEAD3RECEIVE;						//返回頭字節(jié)3接收錯(cuò)誤
	}
	if(Com[3]!='D')											//判斷頭字節(jié)'D'
	{
		return UART_ERR_HEAD4RECEIVE;						//返回頭字節(jié)4接收錯(cuò)誤
	}
	if(Com[5]>80)											//判斷接收長(zhǎng)度是否超出設(shè)計(jì)
	{
		return UART_ERR_LENGTHRECEIVE;						//否則返回?zé)o效長(zhǎng)度
	}
	l=Com[5]+6;												//計(jì)算數(shù)據(jù)實(shí)際長(zhǎng)度
	for(i=6;i<l;i++)										//接收剩余字節(jié)
	{
		p=0;												//初始化變量
		while(!RI)											//等待接收響應(yīng)
		{
			p++;											//防止接收死循環(huán)
			if(p>1000)										//防止死循環(huán)條件
			{
				break;										//否則放棄該字節(jié)接收
			}
		}
		Com[i]=SBUF;										//提取數(shù)據(jù)
		RI=0;												//清除接收標(biāo)志
	}
	sum=(((Uint)Com[l-1])<<8)+(Uint)Com[l-2];				//讀取接收校驗(yàn)和字節(jié)
	p=Uart_Checksum();										//計(jì)算實(shí)際接收數(shù)據(jù)校驗(yàn)和
	if(sum!=p)												//判斷校驗(yàn)和是否相等
	{
		return UART_ERR_CHECKSUMRECEIVE;					//不相等返回校驗(yàn)和錯(cuò)誤
	}
	return UART_ERR_NORECEIVE;								//返回接收成功
}

//=======================================================//
/*******************串口0通信函數(shù)結(jié)束*********************/
//=======================================================//
//=======================================================//
/*******************串口1通信函數(shù)開始*********************/
//=======================================================//
/*=========================================================
函數(shù)名:Uart1_UpReceiveCom()
功能:上行通信接收函數(shù)
入口參數(shù):無(wú)
出口參數(shù):接收狀態(tài)信息(1字節(jié))
=========================================================*/
Uchar Uart1_UpReceiveCom(void)
{
	Uchar i,l;												//聲明變量
	Uint p,sum;												//聲明變量
	if(RI1)													//如果有接收響應(yīng)
	{
	    
		Com[0]=SBUF1;										//移出接收數(shù)據(jù)
		RI1=0;												//清除接收標(biāo)志位
		if(Com[0]!='H')										//判斷頭字節(jié)'H'
		{
			return UART_ERR_HEAD1RECEIVE;					//返回頭字節(jié)1接收錯(cuò)誤
		}
		for(i=1;i<0x06;i++)									//先接收頭字節(jié)以及類型和長(zhǎng)度
		{
			p=0;											//初始化變量
			while(!RI1)										//等待接收響應(yīng)
			{
				p++;										//防止接收死循環(huán)
				if(p>1000)									//防止死循環(huán)條件
				{
					break;									//放棄該字節(jié)接收
				}
			}
			Com[i]=SBUF1;									//移出接收數(shù)據(jù)
			RI1=0;											//清除接收標(biāo)志位
		}
		if(Com[1]!='E')										//判斷頭字節(jié)'E'
		{
			return UART_ERR_HEAD2RECEIVE;					//返回頭字節(jié)2接收錯(cuò)誤
		}
		if(Com[2]!='A')										//判斷頭字節(jié)'A'
		{
			return UART_ERR_HEAD3RECEIVE;					//返回頭字節(jié)3接收錯(cuò)誤
		}
		if(Com[3]!='D')										//判斷頭字節(jié)'D'
		{
			return UART_ERR_HEAD4RECEIVE;					//返回頭字節(jié)4接收錯(cuò)誤
		}
		if(Com[5]>80)										//判斷接收長(zhǎng)度是否超出設(shè)計(jì)
		{
			return UART_ERR_LENGTHRECEIVE;					//否則返回?zé)o效長(zhǎng)度
		}
		l=Com[5]+6;											//計(jì)算數(shù)據(jù)實(shí)際長(zhǎng)度
		for(i=6;i<l;i++)									//接收剩余字節(jié)
		{
			p=0;											//初始化變量
			while(!RI1)										//等待接收響應(yīng)
			{
				p++;										//防止接收死循環(huán)
				if(p>1000)									//防止死循環(huán)條件
				{
					break;									//否則放棄該字節(jié)接收
				}
			}
			Com[i]=SBUF1;									//提取數(shù)據(jù)
			RI1=0;											//清除接收標(biāo)志
		}
		sum=(((Uint)Com[l-1])<<8)+(Uint)Com[l-2];			//讀取接收校驗(yàn)和字節(jié)
		p=Uart_Checksum();									//計(jì)算實(shí)際接收數(shù)據(jù)校驗(yàn)和
		if(sum!=p)											//判斷校驗(yàn)和是否相等
		{
			return UART_ERR_CHECKSUMRECEIVE;				//不相等返回校驗(yàn)和錯(cuò)誤
		}
		return UART_ERR_NORECEIVE;							//返回接收成功
	}
	return UART_ERR_NOPRECEIVE;								//返回沒有接收響應(yīng)
}

/*=========================================================
函數(shù)名:Uart1_UpSend()
功能:232通信發(fā)送函數(shù)
入口參數(shù):無(wú)
出口參數(shù):無(wú)
=========================================================*/
void Uart1_UpSend(void)
{
	Uchar i,l;												//聲明變量
	l=Com[5];												//提取數(shù)據(jù)長(zhǎng)度
	for(i=0;i<l+6;i++)
	{
		TB81=1;
		TI1=0;												//清除發(fā)送空標(biāo)志
		SBUF1=Com[i];										//將Com0所指數(shù)據(jù)送發(fā)送緩沖
		while(!TI1);										//查看是否發(fā)送完畢
	}
}

//=======================================================//
/*******************串口1通信函數(shù)結(jié)束*********************/
//=======================================================//

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
717成人午夜免费福利电影| 久久亚洲一区二区三区明星换脸| 精品一区二区三区视频在线观看| 国产精品五月天| 日韩一级大片在线观看| 在线视频你懂得一区| 国产风韵犹存在线视精品| 婷婷中文字幕一区三区| 国产精品久久三区| 欧美白人最猛性xxxxx69交| 91成人在线观看喷潮| 国产福利精品一区| 日本亚洲三级在线| 亚洲综合丁香婷婷六月香| 中文字幕+乱码+中文字幕一区| 欧美一区二区在线观看| 欧美中文字幕一二三区视频| 不卡视频在线观看| 国产精品123| 国产尤物一区二区在线| 奇米四色…亚洲| 亚洲高清在线精品| 一区二区三区小说| 亚洲欧美在线aaa| 国产精品蜜臀在线观看| 国产日韩精品久久久| 久久嫩草精品久久久精品 | 欧美在线观看视频一区二区三区| 国产成人在线视频网址| 久久99蜜桃精品| 蜜桃一区二区三区在线观看| 水野朝阳av一区二区三区| 亚洲午夜一区二区| 亚洲一区二区在线播放相泽| 一区二区三区日韩在线观看| 国产精品国产三级国产有无不卡 | 亚洲欧美综合另类在线卡通| 日本一区二区三级电影在线观看 | 色av成人天堂桃色av| 91视频在线观看免费| 色综合网色综合| 91网站在线播放| 欧美在线免费视屏| 欧美日韩在线三区| 91精品国产黑色紧身裤美女| 日韩亚洲欧美综合| 久久精品一区蜜桃臀影院| 国产精品久久久久久妇女6080| 国产精品久99| 亚洲午夜电影在线| 五月婷婷久久综合| 毛片av一区二区| 国产精品一二一区| 成人va在线观看| 91精品福利视频| 91精品国产综合久久久久久漫画 | 欧美丰满嫩嫩电影| 日韩欧美在线影院| 26uuu色噜噜精品一区| 中文字幕精品综合| 亚洲一区二区三区三| 水蜜桃久久夜色精品一区的特点| 日本美女一区二区| 国产精品一区二区免费不卡 | 日韩视频123| 国产欧美精品一区| 亚洲激情在线激情| 美国欧美日韩国产在线播放| 国产一区久久久| 91丨九色porny丨蝌蚪| 欧美日韩在线播| 久久天堂av综合合色蜜桃网| 国产精品美女久久久久久久| 香蕉乱码成人久久天堂爱免费| 久久99蜜桃精品| 91在线视频观看| 日韩精品中文字幕一区二区三区 | 懂色一区二区三区免费观看| 91麻豆精东视频| 日韩欧美国产三级| **性色生活片久久毛片| 日本不卡123| 成人的网站免费观看| 欧美精品久久一区| 国产日韩亚洲欧美综合| 亚洲一区二区视频在线| 国产乱码精品一区二区三区忘忧草 | 国内成人自拍视频| 91久久国产最好的精华液| 欧美大片国产精品| 亚洲精品videosex极品| 激情综合色丁香一区二区| 99久久精品免费精品国产| 日韩免费一区二区| 一级日本不卡的影视| 国产1区2区3区精品美女| 欧美精品在线视频| 亚洲丝袜制服诱惑| 狠狠色丁香久久婷婷综合丁香| 欧美亚洲国产怡红院影院| 久久久久国产精品人| 日本伊人色综合网| 欧美伊人精品成人久久综合97 | 国产成人啪午夜精品网站男同| 欧美日精品一区视频| 国产免费成人在线视频| 久久国产尿小便嘘嘘| 一本大道久久a久久综合| 国产亚洲成av人在线观看导航| 亚洲国产精品视频| 91浏览器在线视频| 国产精品网站在线| 国产一区二区三区四区在线观看| 在线播放国产精品二区一二区四区| 毛片基地黄久久久久久天堂| eeuss鲁片一区二区三区在线观看| 国产精品亚洲视频| 欧美日韩成人综合| 久久精品国产精品亚洲综合| 制服丝袜成人动漫| 亚洲成人自拍一区| 一本久久综合亚洲鲁鲁五月天| 中文字幕乱码亚洲精品一区| 国产精品白丝jk黑袜喷水| 精品三级在线看| 麻豆一区二区在线| 69p69国产精品| 亚洲高清免费视频| 欧美日韩黄视频| 三级成人在线视频| 欧美一区二区三区视频| 日韩不卡一区二区三区| 在线播放欧美女士性生活| 视频一区二区三区中文字幕| 欧美人妇做爰xxxⅹ性高电影| 亚洲国产视频网站| 欧美日韩亚洲综合在线 | 99re这里只有精品首页| 国产精品久久久久桃色tv| 成人免费高清在线观看| 国产精品麻豆久久久| 暴力调教一区二区三区| 亚洲色图清纯唯美| 色妹子一区二区| 亚洲黄色免费网站| 欧亚一区二区三区| 天堂成人国产精品一区| 日韩视频一区二区在线观看| 激情综合一区二区三区| 久久久久久97三级| 成人丝袜18视频在线观看| 亚洲男女一区二区三区| 欧日韩精品视频| 捆绑调教一区二区三区| 久久嫩草精品久久久久| 99久久精品免费| 亚洲一区在线看| 日韩精品一区国产麻豆| 国产成人午夜精品影院观看视频| 一色屋精品亚洲香蕉网站| 欧美日韩国产综合久久| 青青青伊人色综合久久| 久久精品一区二区三区四区| 99re这里只有精品首页| 三级欧美韩日大片在线看| 精品国产百合女同互慰| 9色porny自拍视频一区二区| 亚洲一区二区成人在线观看| 欧美xxxxx裸体时装秀| 成人免费视频免费观看| 亚洲一区二区三区免费视频| 精品动漫一区二区三区在线观看| 成人a区在线观看| 亚洲成人动漫一区| 国产欧美一区二区三区沐欲| 日本高清免费不卡视频| 国产永久精品大片wwwapp| 中文字幕一区二区三| 3d成人h动漫网站入口| 国产成人免费视频精品含羞草妖精| 亚洲免费资源在线播放| 欧美大片在线观看一区二区| aaa欧美大片| 激情小说亚洲一区| 一区二区三区精品视频在线| 26uuuu精品一区二区| 欧美性大战久久久久久久| 国产福利一区二区| 日韩成人av影视| 一区二区三区中文字幕在线观看| 精品国产伦一区二区三区免费| 久久综合九色综合久久久精品综合| 91麻豆精品秘密| 国产麻豆一精品一av一免费| 午夜精品久久久久久久99樱桃| 国产精品欧美精品| 精品国产网站在线观看| 欧美日韩卡一卡二| 99v久久综合狠狠综合久久| 久久狠狠亚洲综合|