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

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

?? uart.c

?? 飛利浦ARM7
?? C
字號:
/****************************************Copyright (c)**************************************************
**                               Guangzou ZLG-MCU Development Co.,LTD.
**                                      graduate school
**                                 http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name:			Uart.c
** Last modified Date:  2007-01-08
** Last Version:		1.0
** Descriptions:		Uart庫函數(shù)文件
**
**------------------------------------------------------------------------------------------------------
** Created by:			Litiantian
** Created date:		2007-01-08
** Version:				1.0
** Descriptions:		原始版本
**
**------------------------------------------------------------------------------------------------------
** Modified by:			
** Modified date:		
** Version:
** Descriptions:		
**
********************************************************************************************************/
#include 	"config.h"

/* 如下所定義的宏用于各串口發(fā)送和結(jié)束的判斷 */
#define		UARTSND_END 	(UnLSR & 0x40)		 // 查詢方式下,當UARTSNDEND值不為0時,發(fā)送結(jié)束
#define		UARTRCV_END 	(UnLSR & 0x01)		 // 查詢方式下,當UARTRCVEND值不為0時,發(fā)送結(jié)束

/* 定義串口n的各寄存器*/
#define 	UnLCR			(*(volatile uint8 *)((&U0LCR) + n * 0x4000))
#define		UnDLM			(*(volatile uint8 *)((&U0DLM) + n * 0x4000))
#define 	UnDLL			(*(volatile uint8 *)((&U0DLL) + n * 0x4000))
#define		UnFCR 			(*(volatile uint8 *)((&U0FCR) + n * 0x4000))
#define		UnIER 			(*(volatile uint8 *)((&U0IER) + n * 0x4000))
#define		UnTHR 			(*(volatile uint8 *)((&U0THR) + n * 0x4000))
#define		UnLSR 			(*(volatile uint8 *)((&U0LSR) + n * 0x4000))
#define		UnRBR 			(*(volatile uint8 *)((&U0RBR) + n * 0x4000))

/*********************************************************************************************************
** 函數(shù)名稱 :UARTnIO_Ini(uint8 n)
** 函數(shù)功能 :初始化串口n的發(fā)送和接收腳。
** 入口參數(shù) :  n	:0-UART0	1-UART1  	2-UART2 	3-UART3 
** 出口參數(shù) :無
**********************************************************************************************************/
void UARTnIO_Ini (uint8 n)
{
  	switch(n)
	{
		case 	0:
				SCS		&= ~0x01;						// 端口P0選擇低速GPIO
				PINSEL0 = (0x01 << 4) | (0x01 << 6);	// 設(shè)置P0.2和P0.3連接到UART0
				break;
		case	1:
			    PINSEL4 = 0x02 | (0x02 << 2);  			// 選擇P2.0和P2.1管腳為UART1
				break;
		case 	2:
				PINSEL4 = (0x02 << 16) | (0x02 << 18);	// 設(shè)置P2.8和P2.9連接到UART2
				break;
	   	case 	3:
				PINSEL9 = (0x03 << 24) | (0x03 << 26);	// 設(shè)置P2.8和P2.9連接到UART3
				break;
		default:
				while(1);
	}
}

/*********************************************************************************************************
** 函數(shù)名稱:UARTn_IniDft(uint8 n)
** 函數(shù)功能:按默認值初始化串口n的引腳和通訊參數(shù)。設(shè)置為8位數(shù)據(jù)位,1位停止位,無奇偶校驗,波特率115200。
** 入口參數(shù):n	:0-UART0	1-UART1  	2-UART2 	3-UART3 
** 出口參數(shù):無
**********************************************************************************************************/
void UARTn_IniDft (uint8 n)
{
	uint32 	Fdiv = 0;

	/* 初始化相關(guān)的IO */
	UARTnIO_Ini(n);

	/* 初始化串口通訊參數(shù) */
	UnLCR 	= 0x83;							// 設(shè)置為8位數(shù)據(jù)位,1位停止位,無奇偶校驗,DLAB=1,允許設(shè)置波特率
	Fdiv 	= (Fpclk / 16) / 115200;		// 設(shè)置波特率
	UnDLM 	= Fdiv / 256;
	UnDLL 	= Fdiv % 256;
	UnLCR 	= 0x03;							// 令DLAB位為0
	UnFCR 	&= ~0x07;						// 禁用FIFO
    UnIER 	&= ~0x07;						// 禁止UART產(chǎn)生中斷
}

/*********************************************************************************************************
** 函數(shù)名稱: uint8 UARTn_Init(uint8 n,uint32 baud,uint8 datab,uint8 stopb,uint8 parity,uint8 INT_En)
** 功能描述: 對UARTn的通訊參數(shù)進行初始化
** 入口參數(shù): n	:0-UART0	1-UART1  	2-UART2 	3-UART3 
**         	 baud 	串口通信波特率
**         	 datab	數(shù)據(jù)位個數(shù),有效值為:5,6,7,8
**			 stopb	停止位個數(shù),有效值為:1,2
**			 parity	奇偶校驗位,0-無校驗,1-奇校驗,2-偶校驗,3-強制為1,4-強制為0
**			 INT_En	中斷控制字節(jié),按位操作
**					bit0	1--RBR中斷使能,0--RBR中斷禁止
**					bit1	1--THRE中斷使能,0--THRE中斷禁止
**					bit2	1--RX線狀態(tài)中斷使能,0--RX線狀態(tài)中斷禁止

** 出口參數(shù):為0時表示函數(shù)出錯
**********************************************************************************************************/
uint8 UARTn_Init (uint8 n,uint32 baud,uint8 datab,uint8 stopb,uint8 parity,uint8 INT_En)
{
	uint32 bak = 0;					
	
	/* 參數(shù)過濾 */
	if ((baud ==0 ) || (baud > 115200))	return (0);		// 波特率:1~115200,否則出錯
	if ((datab <5) || (datab > 8))		return (0);		// 數(shù)據(jù)位數(shù):1~8,否則出錯
	if ((stopb == 0) || (stopb > 2)) 	return (0);		// 停止位:1、2,否則出錯
	if (parity > 4)	return (0);							// 奇偶校驗位有錯
	
	/* 設(shè)置串口波特率 */
	UnLCR = 0x80;										// DLAB = 1	
	bak   = (Fpclk >> 4) / baud;
	UnDLM = bak >> 8;
	UnDLL = bak & 0xFF;
	
	/* 設(shè)置串口模式 */
	bak   = datab - 5;									// 設(shè)置字長
	if (stopb == 2)	bak |= 0x04;						// 判斷是否為2位停止位
	
	/* 設(shè)置奇偶校驗 */
	if (parity != 0)
	{
		parity = parity - 1;
		bak |= 0x08;
	}
	bak |= parity << 4;				
	UnLCR = bak;

	/* 配置中斷 */
	UnIER = INT_En & 0x07;								// 設(shè)置中斷使能寄存器

	return (1);
}

/*********************************************************************************************************
** 函數(shù)名稱: uint8 Set_FIFO(uint8 n,uint8 data)
** 功能描述: 設(shè)置FIFO
** 入口參數(shù): n	:0-UART0	1-UART1  	2-UART2 	3-UART3 
**			 data:FIFO觸發(fā)字節(jié)設(shè)定,只能為1,4,8、14個字節(jié)
** 出口參數(shù): 0 :初始化失敗
**         	 1 :初始化成功
********************************************************************************************************/
uint8 Set_FIFO(uint8 n,uint8 data)
{
	switch(data)
	{
		case  1:
			UnFCR = 0x01;	// 緩沖區(qū)為1個字節(jié)
			return(1);
		case  4:
			UnFCR = 0x41;	// 緩沖區(qū)為4個字節(jié)
			return(1);	
		case  8:
			UnFCR = 0x81;	// 緩沖區(qū)為8個字節(jié)
			return(1);
		case  14:
			UnFCR = 0xc1;	// 緩沖區(qū)為14個字節(jié)
			return(1);
		default:
			return(0);
	}
}

/*********************************************************************************************************
** 函數(shù)名稱: void UARTn_SendByte(uint8 n,uint8 data)
** 功能描述: 從串口n發(fā)送數(shù)據(jù)
** 入口參數(shù): n	:0-UART0	1-UART1  	2-UART2 	3-UART3 
**			 data:發(fā)送的數(shù)據(jù)
** 出口參數(shù): 無
********************************************************************************************************/
void UARTn_SendByte(uint8 n,uint8 data)
{
	UnTHR = data;
	while ( UARTSND_END == 0 );	
}

/*********************************************************************************************************
** 函數(shù)名稱: void UARTn_SendData(uint8 n,uint8 *data_buf,uint8 count)
** 功能描述: 從串口發(fā)送數(shù)據(jù)
** 入口參數(shù): n	:0-UART0	1-UART1  	2-UART2 	3-UART3 
**			 data_buf:發(fā)送數(shù)據(jù)緩沖區(qū)首地址
**			 count	:發(fā)送字節(jié)數(shù)
** 出口參數(shù):	無
********************************************************************************************************/
void UARTn_SendData(uint8 n,uint8 *data_buf,uint8 count)
{
	uint8 i;
	for(i=0;i<count;i++) UARTn_SendByte(n,data_buf[i]);		//發(fā)送數(shù)據(jù)
}
/*********************************************************************************************************
** 函數(shù)名稱 :UARTn_SendStr()
** 函數(shù)功能 :通過串口n發(fā)送一個字符串
** 入口參數(shù)	: n	:0-UART0	1-UART1  	2-UART2 	3-UART3 
**			  str	要發(fā)送的字符串的指針
** 出口參數(shù):	無
*********************************************************************************************************/
void UARTn_SendStr (uint8 n,uint8 const *str)
{
	while (1)
	{
		if (*str == '\0')	break;		// 遇到結(jié)束符則退出
		UARTn_SendByte(n,*str++);		// 發(fā)送數(shù)據(jù)
	}
}

/*********************************************************************************************************
** 函數(shù)名稱 :UARTn_RcvByte()
** 函數(shù)功能 :從串口n接收1字節(jié)數(shù)據(jù),使用查詢方式接收。
** 入口參數(shù)	: n	:0-UART0	1-UART1  	2-UART2 	3-UART3 
** 出口參數(shù) :接收到的字節(jié)數(shù)據(jù)
*********************************************************************************************************/
uint8 UARTn_RcvByte (uint8 n)
{
	uint8 rcv_dat;
	
	while (UARTRCV_END == 0);
	rcv_dat = UnRBR;
	
	return (rcv_dat);	
}

/*********************************************************************************************************
** 函數(shù)名稱: void UARTn_RcvData()
** 功能描述: 從串口n接收count個數(shù)據(jù)到緩存data_buf中
** 入口參數(shù)  : n		:0-UART0	1-UART1		2-UART2		3-UART3			  
**			 data_buf:接收數(shù)據(jù)緩沖區(qū)首地址
**			 count	:接收字節(jié)數(shù)
** 出口參數(shù)  :	無
********************************************************************************************************/
void UARTn_RcvData(uint8 n,uint8 *data_buf,uint8 count)
{	
	uint8 i;
	for(i = 0;i < count;i++)
	{
		data_buf[i] = UARTn_RcvByte(n);		// 保存接收到的數(shù)據(jù)
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩视频一区二区在线观看| 亚洲天堂免费看| 国产精品午夜久久| 午夜精品久久久久久久99樱桃| 麻豆91在线播放| 在线亚洲精品福利网址导航| 久久久国际精品| 丝袜美腿成人在线| 91福利在线免费观看| 亚洲国产成人私人影院tom| 日韩福利电影在线观看| 91首页免费视频| 国产欧美一区二区三区鸳鸯浴| 婷婷开心激情综合| 91黄色小视频| 亚洲特级片在线| 成人美女视频在线观看18| ㊣最新国产の精品bt伙计久久| 极品瑜伽女神91| 3d动漫精品啪啪| 亚洲国产精品尤物yw在线观看| 成人sese在线| 国产精品沙发午睡系列990531| 久久99精品久久久久久| 91精品国产一区二区| 亚洲gay无套男同| 欧美在线观看一区| 亚洲香肠在线观看| 欧美亚洲一区二区在线观看| 亚洲欧美电影一区二区| 91热门视频在线观看| 亚洲男人的天堂在线观看| 成人毛片老司机大片| 国产精品萝li| 91视频国产资源| 亚洲一区二区影院| 欧美日韩久久久一区| 亚洲一区二区三区精品在线| 欧美在线观看禁18| 日韩在线一二三区| 欧美一区二区在线免费观看| 麻豆精品视频在线观看| 2023国产一二三区日本精品2022| 国产精品一级二级三级| 国产精品五月天| 色乱码一区二区三区88| 天天色天天爱天天射综合| 欧美mv日韩mv| 成人黄色在线视频| 亚洲三级理论片| 欧美日韩一本到| 麻豆免费看一区二区三区| 精品日产卡一卡二卡麻豆| 成人av在线资源网站| 夜夜嗨av一区二区三区网页| 正在播放亚洲一区| 高清国产一区二区三区| 亚洲欧美另类图片小说| 6080午夜不卡| 国产一区 二区 三区一级| 国产精品久久久久久久浪潮网站| 日本乱人伦一区| 奇米精品一区二区三区四区| 国产午夜精品一区二区| 一本久久精品一区二区| 日韩中文字幕av电影| 国产人妖乱国产精品人妖| 在线视频你懂得一区二区三区| 日韩专区在线视频| 国产精品全国免费观看高清| 欧美精品乱人伦久久久久久| 国产福利91精品一区二区三区| 亚洲精品久久7777| 精品国产不卡一区二区三区| 91麻豆精品秘密| 国产精品综合二区| 亚洲国产一区二区视频| 国产精品视频看| 日韩一区二区高清| 91在线无精精品入口| 老汉av免费一区二区三区 | xvideos.蜜桃一区二区| 色哟哟欧美精品| 国精产品一区一区三区mba桃花| 综合自拍亚洲综合图不卡区| 精品久久久久久久久久久院品网| 91成人在线精品| 国产·精品毛片| 久久99精品久久久| 婷婷成人综合网| 成人免费在线视频| 久久久久久免费网| 日韩欧美国产wwwww| 欧美日本一区二区三区| 色综合天天狠狠| 99久久综合99久久综合网站| 美女视频黄频大全不卡视频在线播放| 1000精品久久久久久久久| 国产亚洲人成网站| 久久综合99re88久久爱| 91精品国产欧美日韩| 欧美日韩午夜在线| 色婷婷综合视频在线观看| 99久久精品国产毛片| 粉嫩av一区二区三区| 国产伦精品一区二区三区免费迷 | 精品无码三级在线观看视频 | 国产成人午夜精品影院观看视频| 免费观看在线综合色| 日韩福利视频网| 日本三级亚洲精品| 日韩中文字幕一区二区三区| 五月婷婷激情综合| 日韩中文字幕不卡| 蜜臀va亚洲va欧美va天堂| 美女看a上一区| 久久超碰97中文字幕| 久草热8精品视频在线观看| 美女视频一区二区| 国产一区二区影院| 国产成人欧美日韩在线电影| 国产成人免费在线观看| youjizz久久| 日本道免费精品一区二区三区| 97精品久久久午夜一区二区三区| 国产aⅴ综合色| 91视频一区二区| 欧美日韩大陆一区二区| 欧美一区永久视频免费观看| 欧美一级二级三级蜜桃| 欧美xxxxxxxxx| 欧美国产综合一区二区| 亚洲欧洲精品一区二区精品久久久| 国产精品成人一区二区艾草| 亚洲免费高清视频在线| 亚洲va国产天堂va久久en| 七七婷婷婷婷精品国产| 国产成人在线看| 在线免费不卡视频| 欧美一区中文字幕| 国产欧美一区二区精品性| 中文字幕日韩精品一区| 亚洲成人在线观看视频| 免费在线观看一区二区三区| 国产一区欧美日韩| 91丨porny丨在线| 日韩一区二区电影| 国产精品美日韩| 五月天亚洲精品| 高清在线观看日韩| 欧美老人xxxx18| 久久久久久9999| 亚洲成人精品影院| 高清在线成人网| 91精品国产综合久久香蕉的特点| 国产欧美日韩另类视频免费观看| 亚洲一区中文在线| 国产麻豆成人精品| 欧美日韩一区国产| 久久精品视频在线看| 亚洲国产精品久久人人爱| 精品一区二区久久久| 欧美性猛片xxxx免费看久爱| 久久久国际精品| 日韩国产欧美视频| 在线影视一区二区三区| 久久久91精品国产一区二区三区| 亚洲国产综合在线| voyeur盗摄精品| 久久免费午夜影院| 天天影视涩香欲综合网| 色综合天天综合网天天狠天天| 2014亚洲片线观看视频免费| 亚洲va韩国va欧美va| 91亚洲精华国产精华精华液| 欧美mv和日韩mv的网站| 偷拍与自拍一区| 色狠狠av一区二区三区| 国产精品不卡一区二区三区| 精品一区二区在线免费观看| 精品视频在线看| 亚洲欧美日韩国产综合在线| 国产91富婆露脸刺激对白| 亚洲精品在线观看网站| 久久电影国产免费久久电影| 3d动漫精品啪啪一区二区竹菊 | 欧美在线制服丝袜| 日韩美女视频一区| 99视频精品在线| 亚洲欧洲性图库| 国产成+人+日韩+欧美+亚洲| 精品理论电影在线观看| 男人的j进女人的j一区| 日韩亚洲欧美在线观看| 日韩av一区二区三区四区| 欧美巨大另类极品videosbest | 亚洲一区在线播放| 日本高清无吗v一区| 亚洲免费观看高清完整版在线观看熊| 成人午夜av电影|