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

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

?? uart0_v1.0.c

?? 駕駛員考試電樁考試系統的車載程序
?? C
字號:
/****************************************Copyright (c)**************************************************
**                               長春智君電子有限公司
**
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: IRQ_FIQ_handle.c
**創   建   人: 查立軍
**最后修改日期: 2006年11月24日
**描        述: 中斷處理程序
**
**--------------歷史版本信息----------------------------------------------------------------------------
** 創建人: 查立軍
** 版  本: 1.0
** 日 期: 2006年11月24日
** 描 述: 原始版本
**
**------------------------------------------------------------------------------------------------------
** 修改人:
** 版  本:
** 日 期:
** 描 述:
**
**--------------當前版本修訂------------------------------------------------------------------------------
** 修改人: 
** 日 期:
** 描 述:
**
**--------------功能說明------------------------------------------------------------------------------
** 關于接收:
   在主函數里,可以看到兩個緩沖區:uint8  byU0RcvBufTemp[24];  uint8  byU0RcvBuf[24];
               還有 iU0RcvTimer; 用來識別字串的中縫,以區分各個字串。
   
   識別字串縫隙的方法:在主函數中,如果"iU0RcvTimer>UART0_OVERTIME",則說明出現了中鋒,
                                   然后,把緩沖區byU0RcvBufTemp[24]里的信息,移動到緩沖區byU0RcvBuf[24]
                                         同時把標志位byU0RcvBufOK置為1。
   ---------------------------------------------------------------------------------------------------
   關于發送:            
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#include "config.h"
#include "UART0_V1.0.h"

uint8  byU0RcvBufTemp[24];       		// UART0數據接收緩沖區
uint8  byU0RcvBuf[24];       		// UART0數據接收緩沖區
uint8  byU0RcvCounter;
uint16 iU0RcvTimer;
uint8  byU0RcvBufOK;     	// 信息移走標志位

volatile uint8  myU0IIR;
/****************************************************************************
* 名稱:IRQ_UART0()
* 功能:串口UART0接收中斷。
* 入口參數:無
* 出口參數:無
****************************************************************************/
void   __irq IRQ_UART0(void)
{  
	uint8  i;
	uint8 byTemp;
    
    myU0IIR = U0IIR&0x0F;
    
    if( myU0IIR == 0x04 )
   	{
   		byTemp = U0RBR;
   		
   		if(iU0RcvTimer>UART0_OVERTIME)
   		{
   			if(byU0RcvBufOK==0)
   			{
   				for(i=0;i<24;i++)
   					byU0RcvBuf[i]=byU0RcvBufTemp[i];
   				byU0RcvBufOK=1;
   			}
   		
   			byU0RcvCounter = 0;
   			byU0RcvBufTemp[byU0RcvCounter] = byTemp;
   			byU0RcvBufOK=0;
   		}
   		else
   		{	
   			byU0RcvCounter ++ ;
   			byU0RcvBufTemp[byU0RcvCounter] = byTemp;
   		}

   		iU0RcvTimer=0;
   	}
   	else if( myU0IIR == 0x0C )	//字符超時提示
   	{
   		myU0IIR = U0IIR&0x0F;
   	}
   	else if( myU0IIR == 0x06 )	//RX線狀態錯誤,OE,PE,FE,或 BI
   	{
   		myU0IIR = U0IIR&0x0F;
   	}
   	else if( myU0IIR == 0x02 )	//THRE 中斷
   	{
   		myU0IIR = U0IIR&0x0F;
   	}
   	else	//其他中斷
   	{
   		myU0IIR = U0IIR&0x0F;
   	}
   
	VICVectAddr = 0x00;              	// 中斷處理結束
} 

/****************************************************************************
* 名稱:UART0_Ini()
* 功能:初始化串口0。設置其工作模式及波特率。
* 入口參數:baud            波特率
*           databit			設置字長度,5-8位
            stopbit			設置停止位,1:1位停止位,2:2位停止位。
            parity          設置奇偶校驗位, 0:沒有奇偶校驗,1:奇校驗,2:偶校驗
* 出口參數:返回值為1時表示初化成功,為0表除參數出錯
****************************************************************************/
uint8  UART0_Ini(uint32 baud, uint8 databit, uint8 stopbit, uint8 parity)
{  
	uint32  bak;
	
	PINSEL0 = (PINSEL0 & 0xFFFFFFF0) | 0x05;
  	
	/* 參數過濾 */
   	if( (0==baud)||(baud>115200) ) return(0);
   	if( (databit<5)||(databit>8) ) return(0);
   	if( (0==stopbit)||(stopbit>2) ) return(0);
   	if( parity>4 ) return(0);

   	/* 設置串口波特率 */
   	U0LCR = 0x80;                        // DLAB位置1
   	bak = (Fpclk>>4)/baud;
   	U0DLM = bak>>8;
   	U0DLL = bak&0xff;
   
   	/* 設置串口模式 */
   	bak = databit-5;                   // 設置字長度
   	if(2==stopbit) bak |= 0x04;        // 判斷是否為2位停止位  
  	 
   	if(0!=parity) {parity = parity-1; bak |= 0x08;}
   	bak |= parity<<4;              	// 設置奇偶校驗
      
   	U0LCR = bak;
   
//   	U0FCR = 0x81;                        // 使能FIFO,并設置觸發點為8字節
   	U0FCR = 0x01;                        // 使能FIFO,并設置觸發點為1字節
   	U0IER = 0x01;                        // 允許RBR中斷,即接收中斷
   
   	/* 設置中斷允許 */
   	VICIntSelect = VICIntSelect & 0x00000000;       // 設置所有通道為IRQ中斷
   	VICVectCntl0 = 0x20 | 0x06;                 	// UART0中斷通道分配到IRQ slot 0,即優先級最高
   	VICVectAddr0 = (int)IRQ_UART0;       // 設置UART0向量地址
   	VICIntEnable = 0x00000040;           // 使能UART0中斷
   
   	//my code
   	byU0RcvCounter=0;
   	iU0RcvTimer =3001;
   	byU0RcvBufOK=1;
   	return(1);
}

/****************************************************************************
* 名稱:SendByte()
* 功能:向串口UART0發送字節數據。
* 入口參數:data                要發送的數據
* 出口參數:無
****************************************************************************/
void  SendByte(uint8 data)
{  U0THR = data;                      	// 發送數據
}

/****************************************************************************
* 名稱:ISendBuf()
* 功能:將緩沖區的數據發送回主機(使用FIFO),并等待發送完畢。
* 入口參數:
			uint8 byAddr,		車載的地址
			uint8 byCommand,	需要發送的命令
			uint8 * bySendBuf,	發送緩存區
			uint8 byBufLength	緩存區中有效數據的長度
* 出口參數:無
****************************************************************************/
void ISendBuf(uint8 byAddr,uint8 byCommand,uint8 * bySendBuf,uint8 byBufLength)
{  
	uint8  i;
	//uint8  bySendNumber=byLength-4;
	uint16  iCheck=0;
	
	SendByte(0x55);
	while( (U0LSR&0x20)==0 );         	// 等待數據發送緩沖區為空
	SendByte(0x5A);
	while( (U0LSR&0x20)==0 );         	// 等待數據發送緩沖區為空

	SendByte(byAddr);
	while( (U0LSR&0x20)==0 );         	// 等待數據發送緩沖區為空

	SendByte(byBufLength+4);
	iCheck = byBufLength+4;
	while( (U0LSR&0x20)==0 );         	// 等待數據發送緩沖區為空

	SendByte(byCommand);
	iCheck += byCommand;
	while( (U0LSR&0x20)==0 );         	// 等待數據發送緩沖區為空

   	for(i=0;i<byBufLength;i++)
   	{
   		SendByte(bySendBuf[i]);
   		iCheck += bySendBuf[i];
   		while( (U0LSR&0x20)==0 );         	// 等待數據發送緩沖區為空
   	}
   	
   	i=iCheck/256;
   	SendByte(i);
	while( (U0LSR&0x20)==0 );         	// 等待數據發送緩沖區為空
   	i=iCheck%256;
   	SendByte(i);
}               

/****************************************************************************
* 名稱:CheckRcvData()
* 功能:檢查從主機發來的串口信息是否正確.
* 入口參數:
			uint8 * byBuf,	緩存區
			uint8 byBufLength	緩存區中有效數據的長度
* 出口參數:uint8 如果檢查合格則返回0,否則返回錯誤代碼1到5
					1: 參數byBufLength不正確,
					2: 頭一個字符不正確 0x55
					3: 第二個字符不正確 0x5A
					4: 地址不正確      
					5: 長度信息不正確
					6: 校驗和不正確
****************************************************************************/
uint8 CheckRcvData(uint8 * byBuf,uint8 byBufLength)
{  
	uint8 i;
	uint16 u16Temp;
	
	if(byBufLength<7) return 1;
	if(byBuf[0]!=0x55) return 2;
	if(byBuf[1]!=0x5A) return 3;
	if(byBuf[2]!=0x01) return 4;
	if(byBuf[3]!=byBufLength-3) return 5;
	
	u16Temp=0;
	for(i=3;i<byBufLength-2;i++)
		u16Temp = u16Temp + byBuf[i];
		
	if( (byBuf[byBufLength-1]+byBuf[byBufLength-2]*256) != u16Temp ) return 5;
	return 0;
}
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲欧美色| 亚洲欧美偷拍三级| 91亚洲午夜精品久久久久久| 一区二区三区资源| 精品国产乱码久久久久久闺蜜| 成人18视频在线播放| 日本欧美大码aⅴ在线播放| 亚洲人被黑人高潮完整版| 欧美一级理论片| 日本韩国精品在线| 成人免费看黄yyy456| 免费欧美在线视频| 一区二区三区日韩在线观看| 久久久久久久久久久久电影| 欧美精品在欧美一区二区少妇| 99精品黄色片免费大全| 国产精品羞羞答答xxdd| 日韩不卡一区二区三区| 亚洲成av人影院| 亚洲色图.com| 国产精品乱子久久久久| 久久青草国产手机看片福利盒子 | 天堂va蜜桃一区二区三区漫画版| 久久久久久影视| 日韩精品一区二区在线观看| 欧美日韩三级一区二区| 欧美在线综合视频| 91浏览器在线视频| 色综合久久久久综合| 99国产精品99久久久久久| 成人久久久精品乱码一区二区三区 | 久久久久久久久一| 337p日本欧洲亚洲大胆色噜噜| 91精品国产综合久久久蜜臀粉嫩| 欧美日韩一区高清| 欧美亚洲动漫制服丝袜| 日本黄色一区二区| 欧美丝袜自拍制服另类| 色网站国产精品| 欧美中文字幕不卡| 欧美精品免费视频| 欧美乱妇20p| 日韩欧美中文字幕制服| 日韩精品中文字幕一区二区三区| 日韩精品一区二区三区视频播放 | 精品久久久网站| 久久综合丝袜日本网| 精品国产三级电影在线观看| 久久久综合精品| 国产欧美一区二区精品性色超碰 | 色欧美片视频在线观看| 91久久奴性调教| 欧美三级乱人伦电影| 欧美日韩免费高清一区色橹橹 | 成人av网址在线| 99re8在线精品视频免费播放| 91在线观看免费视频| 日本精品裸体写真集在线观看 | 日韩午夜精品视频| www国产成人| 中文字幕乱码久久午夜不卡| 国产精品久久久久久久久免费相片| 中文字幕一区二区三| 一区二区视频在线看| 午夜视频久久久久久| 极品少妇xxxx偷拍精品少妇| 成人黄动漫网站免费app| 91麻豆国产精品久久| 欧美日高清视频| 337p日本欧洲亚洲大胆精品| 国产精品精品国产色婷婷| 一个色在线综合| 免费高清在线视频一区·| 国产成人免费视| 欧洲日韩一区二区三区| 日韩亚洲电影在线| 最新国产精品久久精品| 图片区小说区国产精品视频| 国产精品1024| 欧美日韩一区二区三区在线看| 日韩午夜电影在线观看| 国产精品久久久久一区二区三区| 亚洲国产va精品久久久不卡综合| 激情综合五月婷婷| 99久久伊人网影院| 91精品国产综合久久香蕉的特点| 国产欧美日韩在线视频| 亚洲成在线观看| 国产精品一卡二| 欧美揉bbbbb揉bbbbb| 国产天堂亚洲国产碰碰| 亚洲va国产va欧美va观看| 国产一区二三区| 欧美区在线观看| 国产精品视频线看| 美女视频黄久久| 91国产成人在线| 久久理论电影网| 日韩极品在线观看| 91免费观看国产| 国产午夜精品一区二区| 婷婷成人激情在线网| av成人动漫在线观看| 久久久影视传媒| 午夜久久久久久电影| 91碰在线视频| 国产亚洲va综合人人澡精品| 日本午夜精品一区二区三区电影| 91麻豆高清视频| 国产精品美女久久久久久久| 久久精品久久综合| 欧美日韩的一区二区| 中文字幕一区二区三区色视频| 另类的小说在线视频另类成人小视频在线 | 日韩你懂的在线播放| 亚洲一区二区五区| av在线一区二区| 久久久久久久久久久99999| 青娱乐精品视频| 欧美日韩午夜在线视频| 亚洲精品国产精品乱码不99| 成人a免费在线看| 国产精品区一区二区三| 国产精品一区在线| 精品日产卡一卡二卡麻豆| 人禽交欧美网站| 7777精品伊人久久久大香线蕉的 | 日韩精品三区四区| 欧美日韩精品一区二区| 亚洲永久免费av| 欧美主播一区二区三区| 樱桃视频在线观看一区| 91丝袜高跟美女视频| 亚洲视频一区二区在线| 91蜜桃视频在线| 亚洲综合图片区| 在线观看国产91| 亚洲午夜精品在线| 欧美日韩一二区| 日韩激情av在线| 日韩片之四级片| 国产真实乱对白精彩久久| 久久香蕉国产线看观看99| 国产一区福利在线| 国产精品麻豆网站| 色94色欧美sute亚洲线路一久| 一区二区三区日韩精品视频| 欧美日韩一区三区| 久久国产精品第一页| 精品日韩一区二区| 成人午夜电影久久影院| 最新热久久免费视频| 欧美揉bbbbb揉bbbbb| 日本vs亚洲vs韩国一区三区| 久久综合久久综合久久综合| 成人一级片在线观看| 亚洲色图在线播放| 91精品久久久久久久99蜜桃 | 亚洲一区二区三区三| 欧美日本韩国一区| 国产一区亚洲一区| 国产精品久久久久一区二区三区共| 91网站最新网址| 日本不卡一区二区| 国产精品污污网站在线观看| 色综合久久久久综合体| 奇米影视一区二区三区小说| 国产嫩草影院久久久久| 欧美亚洲综合色| 国产综合色产在线精品| 亚洲美女视频在线观看| 欧美电影免费提供在线观看| 成人av在线资源网| 亚洲成人一区在线| 国产偷国产偷亚洲高清人白洁| 91国产视频在线观看| 国内精品免费**视频| 亚洲精品国产无套在线观| 欧美大尺度电影在线| 日本丶国产丶欧美色综合| 久久国产尿小便嘘嘘尿| 亚洲女同女同女同女同女同69| 欧美高清视频一二三区| 懂色av噜噜一区二区三区av| 亚洲国产精品久久人人爱| 久久九九99视频| 欧美高清性hdvideosex| www.欧美亚洲| 久久www免费人成看片高清| 亚洲天堂网中文字| 2017欧美狠狠色| 欧美日韩激情一区| 99久久国产综合色|国产精品| 青草国产精品久久久久久| 亚洲欧美日韩系列| 欧美经典一区二区| 欧美一区中文字幕| 91黄色激情网站| 粉嫩一区二区三区在线看| 三级在线观看一区二区|