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

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

?? uart.c

?? 1、該PERIPHERAL文件夾包含五個有關系統外設的程序:DEC5502_USB、DEC5502_LED和DEC5502_UART程序。 2、DEC5502_USB程序主要實現了與PC機應用程
?? C
字號:
/********************************************************************************/
/*	Filename:	uart.c															*/
/*	Function:	Define uart transfer and receiver functions 					*/
/********************************************************************************/

#include "UART.h"
#include "type.h"
#include <csl_gpt.h>

extern GPT_Handle 	 hGpt;
extern unsigned short int Counter;
unsigned int Delay_Factor;
HANDLE UartChannel;
unsigned int *SendDataPtr;

/******************************************************************************/
/* delay() - 延時一段時間							  						  */
/*                                                                            */
/* 參數:                                                            		  */
/*      	無  								          					  */
/*                                                                            */
/* 返回值: 無																  */
/*                                                                            */
/******************************************************************************/

extern void delay(void)
{
    unsigned int i;
 	for(i=0;i<7;i++)
  	{
  		asm(" NOP");
  	}
}

/******************************************************************************/
/* uart_open() - 打開相應的異步串口,獲得有效的句柄							  */
/*                                                                            */
/* 參數:                                                            		  */
/*     uart:選擇要打開的異步串口   								          */
/*                                                                            */
/* 返回值: 對應的有效句柄  					                              */
/*			當返回值為0xFFFF時,為無效句柄                                    */
/*                                                                            */
/******************************************************************************/

extern HANDLE uart_open(UartId uart)
{
	int data_return;
	if(uart == 0)
	{
		data_return = 0x10;		// Uart A
		return (HANDLE) data_return;
	}
	if(uart == 1)
	{
		data_return = 0x18;		// Uart B
		
		SYSCNTL1 = 0x10;		// 選擇外擴的UART B
		delay();
		
		return (HANDLE) data_return;
	}
	data_return = 0xFFFF;
	return (HANDLE) data_return;
}

/********************************************************************************/
/*																				*/
/* 函數定義:	unsigned int _uart_write_reg(HANDLE channel, unsignedint reg,unsigned int regdata)   	*/
/* 功    能:	串口初始化													    */																				
/* 入口參數:																	*/
/*		  		---- channel:串口A或是串口B										*/
/* 出口參數:	無																*/	       												        
/*																				*/
/********************************************************************************/
extern unsigned int uart_write_reg(HANDLE channel, unsigned int reg,unsigned int regdata)
{
	if((unsigned long int)channel == 0x10)			// a path
		{
			(*(volatile unsigned int *)(chanel_a+reg)) = regdata;
			delay();
		}
	else											// b path
		{
			(*(volatile unsigned int *)(chanel_b+reg)) = regdata;
			delay();
		}
	return(OK);
}

/******************************************************************************/
/* uart_read_reg - 讀取串口控制寄存器							  			  */
/*                                                                            */
/* 參數:                                                            		  */
/*     channel:	選擇要打開的異步串口 										  */
/*	   reg	  :	寄存器的相對地址											  */  								          
/*                                                                            */
/* 返回值:		所對應的寄存器值 				                              */
/*			                                    							  */
/*                                                                            */
/******************************************************************************/

extern unsigned int uart_read_reg(HANDLE channel, unsigned int reg)
{
	unsigned int RegValue;
	if((unsigned long int)channel == 0x10)		// a path
		{
			RegValue = (*(volatile unsigned int *)(chanel_a+reg));
		}
	else										// b path
		{
			RegValue = (*(volatile unsigned int *)(chanel_b+reg));
		}
	return (RegValue);
}
/******************************************************************************/
/* uart_setup() - 設置串口通訊的狀態,并設置其各寄存器默認值	  			   	  */
/*                                                                            */
/* 參數:                                                            		  */
/*     Channel:		有效的串口句柄                                        */
/*	   UartBaud:		設置串口的波待率                                      */
/*	   UartWordLen:		設置字長                                              */
/*	   UartStopBits:	設置停止位                                            */ 
/*	   UartParity:		設置較驗位                                            */
/*	   UartFifoControl:設置FIFO的狀態                                        */
/*	   UartLoopway: 	是否進行自閉環測試                                    */
/*                                                                            */
/* 返回值:  - 無 								                              */
/*                                                                            */
/******************************************************************************/
extern void uart_setup(HANDLE Channel, 
				unsigned int UartBaud, 
				unsigned int UartWordLen, 
				unsigned int UartStopBits, 
				unsigned int UartParity, 
				unsigned int UartFifoControl, 
				unsigned int UartLoopway)
{
	unsigned int baudrateh,baudratel;
	unsigned int uartdata;

	/* 確定延時系數 */
	Delay_Factor = UartBaud;
	
	/*設置波待率分頻數為1*/
	uart_write_reg(Channel,lcr,0xBF);
	uart_write_reg(Channel,efr,0x10);
	uart_write_reg(Channel,lcr,0x0);
	uart_write_reg(Channel,mcr,0x0);
	
	/*使能波待率設置寄存器*/
	uart_write_reg(Channel,lcr,0x80);
	/*設置波特率低位*/
	baudratel = UartBaud & 0xff;
	uart_write_reg(Channel,dll,baudratel);
	/*設置波特率高位*/
	baudrateh = (UartBaud & 0xff00) >>8;
	uart_write_reg(Channel,dlh,baudrateh);
	/*關閉波待率設置寄存器*/
	uart_write_reg(Channel,lcr,0x00);
	
	/*設置數據格式*/
	uartdata = UartWordLen + UartStopBits + UartParity;
	uart_write_reg(Channel,lcr,uartdata);
	
	/*設置FIFO參數*/
	uart_write_reg(Channel,fcr,fifo_rreset);
	uart_write_reg(Channel,fcr,UartFifoControl);
	
	/*是否為閉環測試*/
	uart_write_reg(Channel,mcr,UartLoopway);
}
/******************************************************************************/
/* uart_interrupt_control() - 串口中斷設置,并設置相應的寄存器默認值	          */
/*                                                                            */
/* 參數:                                                            		  */
/*    Channel: 有效的串口句柄												  */
/*	  UartIntr: 設置串口的中斷源                                              */ 
/*                                                                            */
/* 返回值:   				        				                          */
/*        操作成功,返回0                                                     */
/*        操作失敗,返回-1                                                   */
/*                                                                            */
/******************************************************************************/
extern void uart_interrupt_control( HANDLE Channel,
							unsigned int UartIntr)
							
{
	if((unsigned long int)Channel == 0x10)  
		{
		/*清空UART的狀態位*/
		uart_read_reg((HANDLE)0x10,lsr);
		
		/*設置中斷源*/
		uart_write_reg(Channel,ier,UartIntr);
		/*設置A通路中斷使能*/
		uart_write_reg((HANDLE)0x10,mcr,0x49);
		
		} 
	if((unsigned long int)Channel == 0x18)
		{
			/*清空UART的狀態位*/
			uart_read_reg((HANDLE)0x18,lsr);
			/*設置中斷源*/
			uart_write_reg(Channel,ier,UartIntr);
			/*設置B通路中斷使能*/
			uart_write_reg((HANDLE)0x18,mcr,0x49);
		}
}

/******************************************************************************/
/* max3610_set() - MAX3310的設置,并設置相應的寄存器默認值                     */
/*                                                                            */
/* 參數:                                                            		  */
/*    Channel:有效的串口句柄												  */
/*	  FastSet: 設置串口的通訊速度限制                                         */ 
/*	  HpdsSet: 設置串口的全雙工,還是半雙工                                   */
/*                                                                            */
/* 返回值   				        				                          */
/*                                                                            */
/******************************************************************************/
extern void max3160_set( HANDLE Channel,
				  unsigned int FastSet,
				  unsigned int HdplxSet)
{
	unsigned int max3310t;
	/*保存當前的寄存器設置*/
	max3310t = uart_read_reg(Channel,mcr);
	max3310t = (max3310t || (FastSet + HdplxSet<<4));
	/*更新設置*/
	uart_write_reg(Channel,mcr,max3310t); 
}
/******************************************************************************/
/* uart_send_sigle() - 查詢方式下串口發送一個數據             				  */
/*                                                                            */
/* 參數:                                                            		  */
/*    Channel:有效的串口句柄												  */ 
/*	  send_data: 要發送的數據                                                 */
/*                                                                            */
/* 返回值   				        				                          */
/*                                                                            */
/******************************************************************************/
extern void uart_send_sigle(HANDLE Channel,unsigned int send_data)
{
	unsigned int lsrdata;
	do
	{
		lsrdata = uart_read_reg(Channel,lsr);
	}
	while((lsrdata & 0x40) != 0x40);
	uart_write_reg(Channel,thr,send_data);
}

/******************************************************************************/
/* Myuart_Send() - 在查詢方式下串口發送多個數據(由定時器控制數據發送)         */
/*                                                                            */
/* 參數:                                                            		  */
/*    Channel:有效的串口句柄												  */
/*	  longth:  緩沖區的長度                                                   */ 
/*	  send_data: 緩沖區的首址                                                 */
/*                                                                            */
/* 返回值   				        				                          */
/*                                                                            */
/******************************************************************************/
extern void Myuart_Send(HANDLE Channel,
					   unsigned int longth,
					   unsigned int *send_data)
{
	Counter = 0;						// 字符發送計數器清0
	SendDataPtr = send_data;
	UartChannel = Channel;
	GPT_start(hGpt);					// 啟動定時器,開始計時
	  
	do
	{
	}
	while(!(Counter>=longth));
    
    GPT_stop(hGpt);						// 停止定時器
}
/******************************************************************************/
/* uart_receive_single() - 中斷方式下串口接收單個數據 	                      */
/*                                                                            */
/* 參數:                                                            		  */
/*    Channel:	   有效的串口句柄											  */
/*                                                                            */
/* 返回值          接收到的數據												  */
/******************************************************************************/
extern unsigned int uart_receive_single(HANDLE Channel)
{
	unsigned int RegValue;
	unsigned int j;
		
	for(j=0;j<1000;j++)		
	{				
		asm(" NOP");
	}
	
	if((unsigned long int)Channel == 0x10)  
		{
			/* 讀接收保持寄存器 */
			RegValue = uart_read_reg((HANDLE)0x10,rhr);
			return(RegValue);	
		} 
	if((unsigned long int)Channel == 0x18)
		{
			/* 讀接收保持寄存器 */
			RegValue = uart_read_reg((HANDLE)0x18,rhr);	
			return(RegValue);
		}
	else return(OK) ;
}

/*******************************************************************************************/
//	No	more
/*******************************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美男生操女生| 亚洲香蕉伊在人在线观| 一二三区精品福利视频| 激情六月婷婷久久| 欧美在线三级电影| 欧美国产精品一区二区三区| 一区二区三区av电影| 国产成人aaa| 日韩一级黄色片| 亚洲精品高清在线| 国产成人99久久亚洲综合精品| 日韩一区二区三区高清免费看看| |精品福利一区二区三区| 国产一区二区不卡老阿姨| 欧美精品久久久久久久多人混战 | 成人一区二区视频| 欧美sm极限捆绑bd| 奇米亚洲午夜久久精品| 欧美四级电影在线观看| 亚洲蜜臀av乱码久久精品| 国产91富婆露脸刺激对白| 日韩一区二区麻豆国产| 婷婷久久综合九色国产成人| 色婷婷综合久久| 国产精品私房写真福利视频| 国产一区不卡精品| 久久久99精品久久| 国产乱人伦偷精品视频免下载 | 麻豆成人综合网| 欧美日韩国产高清一区二区三区 | 国产精品久久久久久久久久久免费看| 精彩视频一区二区三区| 精品国产一区久久| 国产一区二区精品久久| 中文字幕巨乱亚洲| 成人免费观看av| 中文字幕在线不卡一区| 99久久精品国产精品久久| 亚洲欧洲www| 在线精品视频免费播放| 亚洲高清不卡在线| 91精品国产入口| 麻豆极品一区二区三区| 欧美精品一区二区三区很污很色的| 蜜桃在线一区二区三区| 26uuu久久天堂性欧美| 国产精品亚洲午夜一区二区三区| 国产亲近乱来精品视频| www.欧美精品一二区| 悠悠色在线精品| 欧美高清性hdvideosex| 国内精品伊人久久久久av一坑| 久久久久久久久久久久久夜| 床上的激情91.| 亚洲同性gay激情无套| 色欧美88888久久久久久影院| 亚洲一区二区在线免费观看视频 | 欧美一a一片一级一片| 日韩二区三区四区| 国产色91在线| 欧美探花视频资源| 国产精品一级片| 亚洲一区二区三区四区在线免费观看| 91精品欧美综合在线观看最新| 激情六月婷婷久久| 一区二区三区不卡视频| 久久久久久久久久久久久久久99| 色欧美日韩亚洲| 国产麻豆成人传媒免费观看| 一区二区三区中文字幕在线观看| 5566中文字幕一区二区电影| 国产成人午夜精品5599| 亚洲午夜久久久久久久久电影网 | 偷拍一区二区三区| 国产亚洲欧美日韩日本| 欧美三区在线观看| 国产经典欧美精品| 日本视频在线一区| 亚洲天堂免费在线观看视频| 日韩视频一区二区三区 | 日韩欧美成人一区二区| 91美女福利视频| 国产成人精品亚洲777人妖| 日韩和欧美一区二区| 亚洲欧洲一区二区在线播放| 精品日韩一区二区| 欧美视频精品在线观看| eeuss影院一区二区三区| 久久97超碰国产精品超碰| 一区二区三区在线高清| 欧美国产日产图区| 国产亚洲一区二区三区四区 | 日韩电影网1区2区| 亚洲乱码国产乱码精品精小说 | 婷婷开心激情综合| 一区二区三区日韩精品| 国产女同互慰高潮91漫画| 日韩精品一区二区三区在线观看 | 国产女人水真多18毛片18精品视频 | 日韩欧美在线123| 欧美体内she精高潮| 91国产成人在线| 国产不卡在线视频| 国产一区二区在线免费观看| 七七婷婷婷婷精品国产| 午夜欧美电影在线观看| 亚洲国产精品影院| 亚洲精品自拍动漫在线| 亚洲欧美色图小说| 亚洲精品菠萝久久久久久久| 夜夜精品浪潮av一区二区三区| 久久99精品国产麻豆婷婷| 欧美精品在线一区二区三区| 免费成人美女在线观看.| 精品日韩在线一区| 日韩电影一区二区三区| av不卡在线播放| 亚洲一区在线看| 国产精品久久99| 成人在线综合网站| 成人不卡免费av| 欧美色爱综合网| 国产欧美日韩精品a在线观看| 亚洲欧美激情插 | 麻豆国产精品777777在线| 国产成人久久精品77777最新版本| 欧美综合天天夜夜久久| www精品美女久久久tv| 亚洲制服丝袜一区| 国产91丝袜在线播放0| 911精品国产一区二区在线| 国产精品久久毛片a| 奇米亚洲午夜久久精品| 色8久久人人97超碰香蕉987| 久久久不卡影院| 日本vs亚洲vs韩国一区三区| 色综合天天综合狠狠| 久久久三级国产网站| 日日噜噜夜夜狠狠视频欧美人| aaa亚洲精品| 欧美国产精品专区| 国产在线精品免费| 日韩视频在线永久播放| 亚洲va欧美va人人爽| 91在线观看一区二区| 久久久久久久久99精品| 免费人成精品欧美精品| 欧美日韩一区三区四区| 亚洲精品视频一区| 成人国产电影网| 久久久久久电影| 极品少妇xxxx偷拍精品少妇| 欧美精选在线播放| 日韩精品乱码免费| 欧美日韩视频在线第一区 | 91精品国产丝袜白色高跟鞋| 夜夜亚洲天天久久| 在线看日韩精品电影| 亚洲欧美日韩国产一区二区三区| 国产成人在线影院| 久久久高清一区二区三区| 国产精品1区2区| 久久精品一区二区三区不卡| 韩国欧美国产1区| 亚洲精品一区二区三区影院| 毛片av中文字幕一区二区| 欧美一卡在线观看| 男人的天堂亚洲一区| 日韩三级.com| 精品一二三四在线| 国产欧美日韩视频在线观看| 成人精品鲁一区一区二区| 国产精品人妖ts系列视频| k8久久久一区二区三区| 中文字幕一区在线观看| 97久久超碰精品国产| 一区二区三区久久久| 欧美日韩一二三区| 日本免费新一区视频| 久久天天做天天爱综合色| 国产成人亚洲精品青草天美| 国产精品久久久久久久久动漫| av激情综合网| 亚洲与欧洲av电影| 欧美一区二区福利在线| 国产乱码字幕精品高清av| 国产精品人人做人人爽人人添| 91在线观看成人| 日日噜噜夜夜狠狠视频欧美人 | 北条麻妃一区二区三区| 亚洲三级久久久| 欧美日本一区二区三区四区| 久久99久久精品| 中文字幕精品综合| 欧美午夜在线观看| 激情五月播播久久久精品| 国产精品福利一区二区三区| 欧美日韩亚洲综合在线 | 一区二区三区不卡视频在线观看| 91麻豆精品国产91久久久更新时间 |