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

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

?? drv_uart0.c

?? Enhanced LPC213x device drivers,tools ADS1.2
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include "config_60_61.h"

#include "config_GD60.h"
#include "include_GD60.h"

#include "config_GD61.h"
#include "include_GD61.h"


volatile uint8 	r_buf0[RX_BUFFER_LEN];	// UART0 receiving buffer
volatile uint8 	t_buf0[TX_BUFFER_LEN];	// UART0 sending buffer

extern volatile uint8  r_waittingTime0;

volatile uint8  r_BufferFlag0=0;
volatile uint16 r_inp0=0,r_outp0=0,r_count0=0;
volatile uint16 t_inp0=0,t_outp0=0,t_count0=0;

extern 	 uint8 Comm_Src_Addr;

/////////////////////////////////////////////////////////////////////////

void  Uart0Initialize (uint32 baud, UARTMODE set);
void  SetDefaultUart0(void);
void  __irq IRQ_Uart0Serving (void);
void  ReleaseRS485TE0(void);

void  Uart0SendOver(void);
void  Uart0SendChar(char *send_pt,uint8 send_cnt);
void  Uart0SendString(char *send_pt);
void  Uart0SendAddCrc(uint8 send_cnt);
void  Uart0SendEnter(void);

uint16 MB_CRC16Check(uint8 *puchMsg, uint8 usDataLen);
char   _putchar(char ch);
char   _getchar(void);

void  Uart0SendAdd_Crc(uint8 *send_pt,uint8 send_cnt);
/*
*************************************************************************
** 函數名稱 :Uart0Initialize()
** 函數功能 :初始化串口:		設置工作模式和波特率。
** 入口參數 :baud				波特率
** 			: set				模式設置(UARTMODE數據結構)
** 出口參數	:返回1表示成功,0表示參數出錯。
status 		: ok
*************************************************************************
*/
void Uart0Initialize (uint32 baud, UARTMODE set)
{
uint32 bak;

	IRQDisable();
			
	PINSEL0 = (PINSEL0&0xfffffff0)|0x00000005;
	
	// 參數過濾
	if ((0 == baud) || (baud > 115200))		 return ;
	if ((set.datab < 5) || (set.datab > 8))	 return ;
	if ((0 == set.stopb) || (set.stopb > 2)) return ;
	if (set.parity > 4)						 return ;
	
	// 設置串口波特率
	U0LCR = 0x80;		// DLAB=1
	bak = (LPC_FPCLK >> 4) / baud;
	U0DLM = bak >> 8;
	U0DLL = bak & 0xff;
	
	// 設置串口模式
	bak  = set.datab - 5;
	if (2 == set.stopb)	bak |= 0x04;
	
	if (0 != set.parity)
	{
		set.parity = set.parity - 1;
		bak |= 0x08;
	}
	bak |= set.parity << 4;
	U0LCR = bak;

	U0FCR = 0x81;						// 使能FIFO,并設置觸發點為8字節
	U0IER = 0x03;						// 允許UART中斷, receive and sending int

/* 使能UART0中斷 */
	VICVectCntl0 = 0x20|INT_UART0;		// UART0分配到IRQ slot0,即最高優先級
	VICVectAddr0 = (uint32)IRQ_Uart0Serving;	// 設置UART0向量地址
	VICIntEnable = 1<<INT_UART0;		// 使能UART0中斷
	
	VICVectAddr = 0x00;					// 中斷處理結束	
	bak=U0RBR;							// 讀取FIFO的數據,并清除中斷
	
	IRQEnable();						// 使能IRQ中斷	
}

/*****************************************************************************/
void SetDefaultUart0(void)
{
UARTMODE uart0Set;

	uart0Set.datab  = 8;
	uart0Set.stopb  = 1;
	uart0Set.parity = 0;
	Uart0Initialize(UART0_BAND_RATE, uart0Set);
}
/*
********************************************************************************
** 函數名稱 :IRQ_Uart0Serving()
** 函數功能 :串口0接收中斷服務程序
** 入口參數 :無
** 出口參數 :無
** status	ok
********************************************************************************
*/
void __irq IRQ_Uart0Serving (void)
{
uint8 buf;
#ifdef	UART_FAST_MODE
uint8 i;
#endif

	buf=U0IIR;								//read interrupt identification register
	while((buf&0x01)==0x0){					//bit0=0 indicates that an interrupt occur
		buf&=0x0f;							//get u0iir[3:0]
		switch(buf){

////line error
			case 0x06:						//RLS interrupt, line error occur
				buf=U0LSR;
				break;
				
////receiving data
			case 0x04:						//RDA interrupt
			case 0x0c:						//CTI interrupt
				buf=U0LSR;					//	

				while((buf&0x01)!=0x0){		//uxlsr_bit0 indicates data in uxrbr available

					if(r_count0==0)	r_outp0=r_inp0;
					r_buf0[r_inp0]=U0RBR;		//讀取FIFO的數據,并清除中斷
					r_inp0++;	if(r_inp0>=RX_BUFFER_LEN)  r_inp0=0;
					r_count0++;
					buf=U0LSR;				//more ?

					r_BufferFlag0 = _DATA_OK;
					r_waittingTime0 = 5;
				}
				break;

////sending data
			case 0x02:											//THRE interrupt
				buf=U0LSR;

#ifndef	UART_FAST_MODE
				while(((buf&0x20)==0x20)&&(t_count0!=0)){		//check the THRE empty?
					IO1CLR=RS485TE0_P1o;		//set it sending mode
					U0THR = t_buf0[t_outp0];	// 發送數據 here
					t_outp0++;	if(t_outp0>=TX_BUFFER_LEN)  t_outp0=0;
					t_count0--;
					buf=U0LSR;
				}
#else
				i=0x5a;
				if(((buf&0x20)==0x20)&&(t_count0!=0)){		//check the THRE empty?
					IO1CLR=RS485TE0_P1o;		// set it sending mode
					for(i=0;((i<12)&&(t_count0!=0));i++){			//fifo depth is 16
						U0THR = t_buf0[t_outp0];	// 發送數據 here
						t_outp0++;	if(t_outp0>=TX_BUFFER_LEN)  t_outp0=0;
						t_count0--;
//						if(t_count0==0)	break;
					}
				}
#endif

				if(t_count0==0){
					t_outp0=t_inp0;				//all has been transmited
//					if(i==0x5a){ IO1SET = RS485TE0_P1o; }
				}
				break;

////default condition
			default:
				break;
		
		}
		buf=U0IIR;			//check the other case
	}
	VICVectAddr = 0x00;		// 中斷處理結束
}


////////////////////////////////////////////////////////////////////////////////
//sending anything to host without ending flag(such as CRC or ENTER)
//state 	:ok
////////////////////////////////////////////////////////////////////////////////
void ReleaseRS485TE0(void)
{
	if(((IO1PIN&RS485TE0_P1o)==0x0000)&&(t_count0==0)){
		if((U0LSR&0x40)==0x40){					//sending over
			DelayUS_(50);
			IO1SET=RS485TE0_P1o;				//set it receiving mode
		}
	}
}	

////////////////////////////////////////////////////////////////////////////////
//sending anything to host without ending flag(such as CRC or ENTER)
//state 	:ok
////////////////////////////////////////////////////////////////////////////////
void Uart0SendOver(void)
{
	while(((U0LSR&0x20)==0)||(t_count0!=0));		// 等待數據發送完畢
}	
	
////////////////////////////////////////////////////////////////////////////////
//sending anything to host without ending flag(such as CRC or ENTER)
//state 	:ok
////////////////////////////////////////////////////////////////////////////////
void Uart0SendChar(char *send_pt,uint8 send_cnt)
{

	while((t_count0!=0)||((U0LSR&0x20)==0));		//wait until t_buff empty

	IRQDisable();
	
	do
	{
		t_buf0[t_inp0]=*send_pt;
		t_inp0++;	if(t_inp0>=TX_BUFFER_LEN)  	t_inp0=0;		//elarge the sending buffer

		send_pt++;
		t_count0++;
		send_cnt--;
			
	}while(send_cnt>0);			// copy the string to t_buffer

	IRQEnable();				// 使能IRQ中斷 
	IO1CLR=RS485TE0_P1o;		//set it sending mode
	DelayUS_(1000000/UART0_BAND_RATE);

	U0THR = t_buf0[t_outp0];		//initiate sending
	t_outp0++;	if(t_outp0>=TX_BUFFER_LEN)  t_outp0=0;
	t_count0--;
}

//////////////////////////////////////////////////////////////////////////////
//sending string ending with ENTER to computer or host 
//state	:ok
//////////////////////////////////////////////////////////////////////////////
void Uart0SendString(char *send_pt)
{
	while((t_count0!=0)||((U0LSR&0x20)==0));	//wait until t_buff empty
		

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品一区二区三区香蕉| 色婷婷综合久久久久中文一区二区| 91一区二区三区在线观看| 国产午夜精品福利| 成人高清视频免费观看| 国产精品国产馆在线真实露脸| 99久久久久免费精品国产| 亚洲aaa精品| 日韩一区二区三区在线视频| 国产成人午夜高潮毛片| 亚洲女同一区二区| 91超碰这里只有精品国产| 久久99久久99小草精品免视看| 国产午夜精品久久久久久免费视| 国产亚洲综合色| 国产精品拍天天在线| 欧美日韩精品免费观看视频| 国产一区在线精品| 亚洲成人久久影院| 免费高清成人在线| 国产精品久久久久7777按摩| 亚洲日本丝袜连裤袜办公室| 2017欧美狠狠色| 6080日韩午夜伦伦午夜伦| 91精品国产综合久久久久久漫画| 日韩欧美电影一二三| 欧美综合一区二区三区| 国产在线视频不卡二| 丝袜亚洲另类欧美综合| 一区二区三区在线视频免费| 国产亚洲精品aa| 亚洲伦在线观看| 久久久精品综合| 久久众筹精品私拍模特| 亚洲日本中文字幕区| 日本不卡一区二区三区高清视频| 亚洲电影你懂得| 国产成人自拍高清视频在线免费播放| 99视频超级精品| 不卡视频免费播放| 在线播放视频一区| 日韩视频在线观看一区二区| 中文字幕在线观看一区| 国产精品亲子伦对白| 五月婷婷久久丁香| 免费观看30秒视频久久| 91美女在线看| www欧美成人18+| 三级不卡在线观看| 97aⅴ精品视频一二三区| 欧美xxxxxxxx| 久久视频一区二区| 亚洲成人激情综合网| 91丝袜呻吟高潮美腿白嫩在线观看| 69av一区二区三区| 亚洲一区在线观看视频| 日韩黄色免费电影| 欧美在线free| 国产精品传媒入口麻豆| 国产精品 欧美精品| 久久色在线视频| 免费人成精品欧美精品| 在线视频中文字幕一区二区| 亚洲国产高清在线观看视频| 精品国产乱码久久久久久蜜臀| 亚洲欧美日本韩国| av在线这里只有精品| 久久久国产精品不卡| 激情综合网激情| 日韩美女在线视频 | 亚洲国产精品高清| 久久er精品视频| 成人av在线资源| 国产亲近乱来精品视频| 亚洲欧洲成人精品av97| 粉嫩高潮美女一区二区三区| 在线观看亚洲a| 亚洲国产婷婷综合在线精品| 日本不卡在线视频| 欧美va亚洲va国产综合| 久久er99精品| 久久精品一区二区三区不卡 | 日本中文一区二区三区| 欧美日韩一区国产| 久久精品视频网| 高清国产午夜精品久久久久久| 久久伊人蜜桃av一区二区| 国产乱理伦片在线观看夜一区| 91浏览器入口在线观看| 亚洲日穴在线视频| 欧美日韩一区不卡| 毛片不卡一区二区| 97精品久久久午夜一区二区三区| 亚洲欧洲av另类| 欧美亚洲丝袜传媒另类| 国产精品网友自拍| 色综合久久久久综合| 五月婷婷激情综合| 欧美性生交片4| 久久精品国产77777蜜臀| 久久久久国产精品麻豆ai换脸| 成人黄动漫网站免费app| 一区二区三区日韩欧美| 欧美美女视频在线观看| 久久99九九99精品| 国产精品国产三级国产aⅴ入口 | 美腿丝袜亚洲一区| 国产亚洲自拍一区| 99久久久精品| 欧美a级一区二区| 久久精品视频一区二区三区| 欧美性生交片4| 国产成人精品亚洲777人妖| 亚洲一二三区在线观看| 欧美电影免费观看高清完整版在线观看 | 欧美日产国产精品| 国产一区二区在线观看免费| 亚洲视频在线一区二区| 国产精品夫妻自拍| 7777精品伊人久久久大香线蕉| 激情综合色丁香一区二区| 亚洲精品视频在线观看网站| 日韩女优视频免费观看| 日本黄色一区二区| 日韩美女视频一区二区| 日韩精品一区二区三区视频| 色悠久久久久综合欧美99| 老汉av免费一区二区三区| 一区二区三区美女视频| 欧美国产日产图区| 欧美成人一区二区三区| 欧美午夜理伦三级在线观看| 国产999精品久久久久久绿帽| 亚洲图片一区二区| 亚洲最色的网站| 中国av一区二区三区| 日韩精品在线网站| 9191久久久久久久久久久| 一本一道综合狠狠老| 国产a久久麻豆| 精品一区二区免费在线观看| 日韩专区一卡二卡| 午夜精品免费在线| 一区二区三区免费| 亚洲永久免费视频| 亚洲精品精品亚洲| 一区二区免费在线| 亚洲精品美国一| 亚洲黄一区二区三区| 日韩美女啊v在线免费观看| 国产午夜一区二区三区| 精品国产一区二区精华| 日韩欧美中文一区二区| 91精品国产手机| 成人永久免费视频| 亚洲1区2区3区4区| 亚洲h精品动漫在线观看| 图片区日韩欧美亚洲| 天堂久久一区二区三区| 国产精品一二三在| 国产一区 二区 三区一级| 国产麻豆成人精品| 国产不卡视频在线观看| 99久久国产综合精品色伊| 色域天天综合网| 欧美日韩1区2区| 精品福利在线导航| 欧美激情一二三区| 亚洲精品国产a| 亚洲成人一区二区在线观看| 青青草原综合久久大伊人精品优势| 久久99精品久久久久久国产越南| 国产乱人伦精品一区二区在线观看 | 亚洲在线中文字幕| 国内精品视频一区二区三区八戒| 久久精品国产99久久6| 大白屁股一区二区视频| 9i在线看片成人免费| 亚洲欧美另类在线| 亚洲狠狠丁香婷婷综合久久久| 亚洲mv在线观看| 日av在线不卡| 欧美va亚洲va| 中文字幕av不卡| 欧美色爱综合网| 久久精品男人天堂av| 久久精品国产秦先生| 欧美区一区二区三区| 亚洲精品免费电影| 色噜噜狠狠成人网p站| 日韩美女久久久| 91丨九色porny丨蝌蚪| 国产精品美女久久久久高潮| 丁香婷婷综合五月| 国产亚洲制服色| 国产乱理伦片在线观看夜一区| 精品va天堂亚洲国产| 激情综合网av| 久久日一线二线三线suv| 久久精品国内一区二区三区|