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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? serial.c

?? 功能非常完善的51串口程序包
?? C
字號:
#include "Serial.h"

Packet comm;

//******************數據通訊初始化函數**********************//
//輸入:無
//輸出:無
//說明:初始化包括定時器和中斷的初始化
//      配置為使用定時器1,開串口中斷,允許接收
//      波特率等參數在serial.h中設置,無需改動此函數
//********************************************************//
void Serial_Init()
{
 TMOD=0x20;
 SCON=0x50;
 
#ifdef BOUND_RATE_DOUBLE	//波特率加倍時的參數
 TL1=0;
 TH1=256.5-CLK_FRE/(BOUND_RATE*16.0*CLK_DIV);
 PCON=0x80;
#else						//波特率不加倍時的參數
 TL1=0;
 TH1=256.5-CLK_FRE/(BOUND_RATE*32.0*CLK_DIV);
 PCON=0x00;
#endif

 TR1=1;
 ES=1;
 EA=1;
 comm.rflag=COMM_IDLE;
 comm.tflag=COMM_IDLE;
 comm.time=COMM_TIME;
 comm.rcount=0;
 comm.tcount=0;

}

//******************數據接收中斷函數**********************//
//輸入:無
//輸出:無
//說明:此函數完成數據的接收和發送功能,無需調用
//      要獲取通訊接收狀態可監視comm.rflag
//      COMM_IDLE  0  時為空閑等待狀態
//		COMM_ACK   1  時為接收完成
//		COMM_REING 2  時為正在接收
//      接收數據將在接收完成后更新,讀取comm,dat[]即可獲取數據

//      要獲取通訊接收狀態可監視comm.tflag
//      COMM_IDLE  0  時為空閑等待狀態
//		COMM_ACK   1  時為發送完成
//		COMM_TEING 2  時為正在發送
//		要發送數據調用Serial_Send()函數
//********************************************************//
void Serial_Int() interrupt 4
{
 if (RI)
 {
  RI=0;

  if (comm.rcount>=PACKET_LEN-1)	//本次數據包接收完畢
  	{
	 uchar i;

	 comm.dat[PACKET_LEN-1]=SBUF;	//保存最后一個接收到的數據
	 for (i=0;i<PACKET_LEN-1;i++)
	 	{
		 comm.dat[i]=comm.temp[i];	//轉存以前的接收數據
		}
	 comm.rflag=COMM_ACK;		//接收完畢標志
	 comm.rcount=0;				//下次重新開始接收
	}
   else
   	{
	 comm.temp[comm.rcount]=SBUF;	//保存接收數據
  	 comm.rcount++;
	 comm.rflag=COMM_REING;		//正在接收標志
	 comm.time=COMM_TIME;		//重置接收計時 
	}
 }

 if (TI)
 {
  TI=0;

  if (comm.tcount>=comm.len)	//發送完畢
  	{
	 comm.tflag=COMM_IDLE;
	}
   else
   	{
	 SBUF=*comm.pdat;
	 comm.pdat++;
	 comm.tcount++;
	}
 }


}


//******************數據接收計時函數**********************//
//輸入:無
//輸出:無
//說明:此函數負責監視一個數據包中各數據的接收,若數據包接收
//      超時則重新啟動數據接收
//      若要使用數據接收監視功能,需在主函數中循環調用此函數
//********************************************************//
void Serial_Timer()
{
 if (comm.rflag==COMM_REING)
 	{
	 if (comm.time)
	 	{
		 comm.time--;
		}
	   else
	   	{
	 	 comm.rflag=COMM_IDLE;
		 comm.time=COMM_TIME;
		 comm.rcount=0;
		}
	}
}

//******************數據接收狀態函數**********************//
//輸入:無
//輸出:COMM_DATA_NOTRDY  0    數據未準備好,未接收到數據或正在接收
//		COMM_DATA_ACK	  1    數據接收完成,效驗正確
//		COMM_DATA_ERROR   2    數據接收完成,效驗錯誤或無效驗位
//說明:調用此函數后,接收狀態被自動清為空閑(僅對接收完成的狀態)
//********************************************************//
uchar Serial_GetDataState()
{
 uchar i,a=0;
 if (comm.rflag==COMM_IDLE || comm.rflag==COMM_REING)
 	return COMM_DATA_NOTRDY;

 for (i=0;i<PACKET_LEN-1;i++)			//數據效驗,數據包中最后一字節為效驗位,應等于包中其他數據之和(不計溢出)
 	{
	 a+=comm.dat[i];
	}
 if (a==comm.dat[PACKET_LEN-1])
 	{
	 comm.rflag=COMM_IDLE;
 	 return COMM_DATA_ACK;
	}
   else
	{
	 comm.rflag=COMM_IDLE;
   	 return COMM_DATA_ERROR;
	}
}

//******************數據發送函數**************************//
//輸入:發送數據緩沖區指針 *pdat
//      發送數據長度       len
//輸出:COMM_SENT_OK     0   數據發送正常
//      COMM_SENT_BUSY   1   發送忙,需稍后重發
//說明:此函數將緩沖區內len長度的數據發送出去
//********************************************************//
uchar Serial_Sent(uchar *pdat,uchar len)
{
 if (comm.tflag==COMM_TEING)
 	return COMM_SENT_BUSY;

 comm.tflag=COMM_TEING;	//開始發送,置標志
 comm.len=len;
 SBUF=*pdat;			//發送第一個數據啟動發送
 comm.pdat=pdat+1;
 comm.tcount=1;

 return COMM_SENT_OK;
}

//*****************帶效驗位生成的數據發送函數*******************//
//輸入:發送數據緩沖區指針 *pdat
//      發送數據長度       len
//輸出:COMM_SENT_OK     0   數據發送正常
//      COMM_SENT_BUSY   1   發送忙,需稍后重發
//說明:此函數自動計算效驗位,將其放在緩沖區末端再將數據發送出去
//      總共發送數據長度為len+1
//注:  緩沖區的有效長度應至少為len+1,否則會產生不可知后果
//********************************************************//
uchar Serial_ValidateSent(uchar *pdat,uchar len)
{
 uchar i,a=0;
 if (comm.tflag==COMM_TEING)
 	return COMM_SENT_BUSY;

 comm.pdat=pdat;
 comm.tflag=COMM_TEING;	//開始發送,置標志
 comm.len=len+1; 

 for (i=0;i<len;i++)
 	{
	 a+=*pdat;
	 pdat++;
	}
 *pdat=a;

 SBUF=*comm.pdat;		//發送第一個數據啟動發送
 comm.pdat++;
 comm.tcount=1;

 return COMM_SENT_OK;
}






?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区二区三区四区五区| 91麻豆国产自产在线观看| 亚洲欧洲一区二区在线播放| 久久综合九色综合97婷婷| 精品精品欲导航| 日韩女优av电影| 精品乱码亚洲一区二区不卡| 欧美国产激情一区二区三区蜜月| 精品国产伦一区二区三区观看方式| 欧美一区二区三区电影| 日韩欧美在线综合网| 欧美大胆人体bbbb| 日韩精品一区二区在线| 精品国产一区二区亚洲人成毛片| 欧美sm极限捆绑bd| 国产欧美一区二区精品性色 | 亚洲天堂2014| 国产精品无遮挡| 亚洲人成在线播放网站岛国| 日韩高清中文字幕一区| 丝袜亚洲精品中文字幕一区| 九九九精品视频| 盗摄精品av一区二区三区| 91丝袜美腿高跟国产极品老师| 欧美主播一区二区三区| 日韩一区二区三区四区| 国产欧美1区2区3区| 亚洲欧美另类久久久精品2019| 亚洲精品菠萝久久久久久久| 亚洲r级在线视频| 国产一区二区三区精品欧美日韩一区二区三区| 国产九色sp调教91| 91久久国产最好的精华液| 欧美一区二区三区在线观看 | 国产成人亚洲精品青草天美| 99国产精品视频免费观看| 欧美色网一区二区| 久久综合久久综合亚洲| 亚洲在线成人精品| 国产一区二区三区在线观看免费视频 | 日韩二区三区在线观看| 国产一区二区三区国产| 欧美日韩不卡在线| 国产精品私人自拍| 美女一区二区三区| 91在线国产观看| 久久久久久久综合| 午夜视频一区在线观看| caoporm超碰国产精品| 日韩欧美久久一区| 亚洲成人精品一区二区| 不卡av在线免费观看| 精品国产免费视频| 日韩av一区二区在线影视| 9l国产精品久久久久麻豆| 欧美成人aa大片| 亚洲一区二区三区美女| eeuss鲁一区二区三区| 久久一区二区三区四区| 性欧美疯狂xxxxbbbb| 色久综合一二码| 国产精品免费免费| 国产精品一区二区在线观看网站| 欧美日韩和欧美的一区二区| 中文字幕一区二区在线播放| 国产伦精品一区二区三区在线观看| 欧美三级电影在线观看| 亚洲精品视频免费观看| jlzzjlzz欧美大全| 亚洲欧洲99久久| 成人午夜碰碰视频| 国产精品久久久久久久久久久免费看 | 色偷偷88欧美精品久久久| 中文成人av在线| 成人黄色免费短视频| 国产精品乱码人人做人人爱| 国产高清精品在线| 国产婷婷精品av在线| 国产精品自在在线| 国产女人水真多18毛片18精品视频| 麻豆精品一区二区| 久久伊人中文字幕| 国产成人一区在线| 中文字幕在线一区| 91麻豆福利精品推荐| 亚洲婷婷在线视频| 日韩无一区二区| 免费成人av资源网| 久久久久久夜精品精品免费| 国产成人aaa| 成人欧美一区二区三区白人| 91亚洲精品久久久蜜桃网站| 亚洲乱码一区二区三区在线观看| 91一区在线观看| 午夜av一区二区| 日韩美女一区二区三区四区| 国产麻豆精品在线| 亚洲视频你懂的| 欧美喷水一区二区| 国内国产精品久久| 欧美高清在线视频| 欧美性大战久久久| 久久av老司机精品网站导航| 国产精品视频九色porn| 欧美影院精品一区| 国产一区不卡在线| 亚洲丝袜精品丝袜在线| 欧美人牲a欧美精品| 国产成人福利片| 亚洲一区二区黄色| 久久精品日韩一区二区三区| 色婷婷狠狠综合| 国模大尺度一区二区三区| 亚洲男女毛片无遮挡| 精品成人一区二区| 欧美中文字幕一区二区三区亚洲| 久久丁香综合五月国产三级网站| 国产精品久线在线观看| 欧美一区二区三区在线| 波多野结衣一区二区三区| 日韩在线卡一卡二| 国产精品入口麻豆九色| 91精品黄色片免费大全| 国产精品中文有码| 日本午夜精品一区二区三区电影 | 成人av动漫网站| 麻豆专区一区二区三区四区五区| 国产精品视频一二三区| 日韩午夜激情视频| 欧美日韩精品久久久| 91丝袜美女网| 国产·精品毛片| 国产原创一区二区| 日韩成人免费在线| 亚洲午夜精品久久久久久久久| 国产情人综合久久777777| 91精品国产综合久久福利| 欧美性猛片aaaaaaa做受| a美女胸又www黄视频久久| 色婷婷综合久久久中文一区二区| 伦理电影国产精品| 日本视频一区二区三区| 日韩在线一区二区| 日韩电影免费一区| 午夜免费欧美电影| 五月天欧美精品| 日韩国产在线观看一区| 亚洲国产精品麻豆| 亚洲一区二区美女| 午夜精品在线视频一区| 亚洲va韩国va欧美va| 午夜精彩视频在线观看不卡| 视频在线观看91| 日韩在线一区二区三区| 蜜臀av性久久久久蜜臀aⅴ| 视频一区中文字幕| 麻豆极品一区二区三区| 狠狠色综合播放一区二区| 极品美女销魂一区二区三区| 国产一区高清在线| 高清成人在线观看| 一本久久a久久免费精品不卡| 99久久国产综合精品麻豆| 一本一道久久a久久精品| 欧洲精品在线观看| 欧美美女直播网站| 欧美tickling网站挠脚心| 欧美国产日韩一二三区| 成人欧美一区二区三区视频网页| 亚洲日韩欧美一区二区在线| 亚洲综合免费观看高清完整版在线| 亚洲另类在线视频| 水蜜桃久久夜色精品一区的特点| 99久久er热在这里只有精品66| 成人黄页在线观看| 在线观看三级视频欧美| 欧美乱熟臀69xxxxxx| 久久久精品tv| 亚洲综合免费观看高清完整版在线 | 精品国产乱码久久久久久闺蜜| 欧美tickling挠脚心丨vk| 国产精品美女久久久久久久久 | 久久精品水蜜桃av综合天堂| 亚洲视频综合在线| 日韩成人一区二区三区在线观看| 国产美女在线精品| 在线观看欧美日本| 久久久久久久久久久久久夜| 亚洲欧美日韩在线| 精品影视av免费| 91亚洲精品乱码久久久久久蜜桃 | 国产成人在线免费观看| 在线观看三级视频欧美| 久久久久久一级片| 天天色图综合网| 99精品欧美一区二区蜜桃免费 | 色综合视频一区二区三区高清| 欧美丰满少妇xxxbbb| 亚洲视频在线观看三级| 久久99精品国产麻豆婷婷洗澡|