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

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

?? uart.c

?? 基于S3C2410和SM501的彩屏控制器程序
?? C
字號:
#define __UART
#include "uart.h"
#undef __UART

//********************** Global Variable **********************

//----- 異步串行I/O口的配置參數 -----
uchar	UartReceTimerOut[3];	//串口接收超時
uchar	UartReceLen[3];			//串口接收長度
uchar	UartSendLens[3];		//串口發送長度	
uchar	UartSendPosi[3];		//當前數據的位置			
uchar	UartReceBuf[3][256];	//串口接收緩沖區		
uchar	UartSendBuf[3][256];	//串口發送緩沖區

//*************************************************************



//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 函數: 串口中斷服務入口.
// 描述: 根據串口號選擇相應的串口中斷服務程序.
//
// [參數表]
//	UartNo: 串口號.
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void HandleUart(uchar UartNo)
{
	S3C24X0_INTERRUPT * const inter = S3C24X0_GetBase_INTERRUPT();
	
	switch(UartNo)	// 根據串口號標記中斷, 更新中斷掛起寄存器
	{
		case UART0:	//串口0中斷
  			ClearPending(BIT_UART0);
  			break;
  			
  		case UART1:	//串口1中斷
  			ClearPending(BIT_UART1);
  			break;
  			
  		case UART2:	//串口2中斷
  			ClearPending(BIT_UART2);
  			break;
  			
  		default:	break;
  	}
  	
  	if ((~inter->eINTSUBMSK ) & inter->eSUBSRCPND & UartRXD(UartNo) )
  	{
   		// UART 接收中斷
  		inter->eSUBSRCPND = UartRXD(UartNo);
		UartReceve(UartNo);
	}
  	else if ((~inter->eINTSUBMSK ) & inter->eSUBSRCPND & UartTXD(UartNo) )
   	{
    	// UART 發送中斷
  		inter->eSUBSRCPND = UartTXD(UartNo);
		UartSend(UartNo);	
   	}
  	else if ((~inter->eINTSUBMSK ) & inter->eSUBSRCPND & UartERR(UartNo) )
    {
    	//UART 中斷錯誤
  		inter->eSUBSRCPND = UartERR(UartNo);	
   	}
}//HandleUart()



//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 函數: 串口接收中斷服務.
//
// [參數表]
//	port: 串口號. 0-UART0; 1-UART1; 2-UART2.
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void UartReceve(uchar port)
{
	UartReceTimerOut[port] = 10;
    UartReceBuf[port][UartReceLen[port]++] = UartRecByte(port);
    UartReceLen[port] &= 0xFF;
}//UartReceve()



//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 函數: 串口發送中斷服務.
//
// [參數表]
//	port: 串口號. 0-UART0; 1-UART1; 2-UART2.
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void UartSend(uchar port)
{
	if(UartSendLens[port] > 0)
	{
		UartSendByte(port,UartSendBuf[port][UartSendPosi[port]++]);
		UartSendLens[port]--;
	}
	else
		UartSendLens[port] = 0;
}//UartSend()



//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 函數: 串口發送單字節.
//
// [參數表]
//	port: 串口號. 0-UART0; 1-UART1; 2-UART2.
//	c: 待發送字節.
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void UartSendByte (uchar port, uchar c)
{
	S3C24X0_UART * const uart = S3C24X0_GetBase_UART(port);
	
	uart->UTXH = c;
}//UartSendByte()



//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 函數: 串口接收單字節.
//
// [參數表]
//	port: 串口號. 0-UART0; 1-UART1; 2-UART2.
//
// 返回: 串口接收到的數據(單字節).
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int UartRecByte (uchar port)
{
	S3C24X0_UART * const uart = S3C24X0_GetBase_UART(port);

	return uart->URXH & 0xff;
}//UartRecByte()



//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 函數: 啟動串口發送.
// 描述: 通過串口發送數據數組的第一個字節, 并觸發串口發送中斷, 后續字節通過中斷發送.
//
// [參數表]
//	port: 串口號. 0-UART0; 1-UART1; 2-UART2.
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void UartStartSend(uchar port)
{
	UartSendPosi[port] = 1;		// 串口發送數據數組指針指向下一數據
	UartSendByte(port,UartSendBuf[port][0]);	// 串口發送第一個數據, 并觸發串口發送中斷

	UartReceLen[port] = 0;
}//UartStartSend()



//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 函數: 串口打印.
// 描述: 通過串口輸出格式字符串.
//
// [參數表]
//	fmt: 格式字符串始地址.
//	...: 格式參數
//
// 注: 	(1) 本函數所需的變量類型在stdarg.h中聲明, vsprintf函數需要進行外部聲明.
//		(2) 串口號在頭文件中進行宏定義.
//		(3) 當需要輸出回車時, 最好用轉義字符"\r\n"; 僅僅用"\n"上位機可能無法有效響應回車.
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void UARTprintf (char *fmt, ...)
{
    va_list ap;		// 虛擬參數列表

	va_start(ap,fmt);	// 初始化格式字符串
	vsprintf((char *)UartSendBuf[UART_PRINT_PORT],fmt,ap);	// 將格式字符串輸出到串口發送緩沖區

	UartSendLens[UART_PRINT_PORT] = strlen((char *)UartSendBuf[UART_PRINT_PORT])-1;	// 計算串口發送長度
	UartStartSend(UART_PRINT_PORT);		// 開始串口發送

	va_end(ap);		// 撤銷虛擬參數列表

	// 延時等待, 確保字符串能完整發送
	if( UartSendLens[UART_PRINT_PORT] <= 20)
		udelay(2000);	// 少于20個字符, 延時2ms
	else if( UartSendLens[UART_PRINT_PORT] <= 50 )
		udelay(4000);	// 少于50個字符, 延時4ms
	else if( UartSendLens[UART_PRINT_PORT] <= 120 )
		udelay(10000);	// 少于120個字符, 延時10ms
	else
		udelay(20000);	// 延時20ms (最大發送字符數為256)
}//Uartprintf()

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲午夜精品网| 国产亚洲va综合人人澡精品| 国产精品123区| 国产精品色噜噜| 日韩免费看的电影| 欧美吻胸吃奶大尺度电影 | 国产三级三级三级精品8ⅰ区| 欧美亚洲高清一区| 成人av在线看| 国产激情精品久久久第一区二区| 亚洲第一狼人社区| 亚洲一区二区三区小说| 亚洲精品伦理在线| 国产女人18水真多18精品一级做| 日韩欧美国产午夜精品| 欧美日韩久久久| 国产高清成人在线| 国产激情精品久久久第一区二区| 九九国产精品视频| 久久99久国产精品黄毛片色诱| 亚洲午夜成aⅴ人片| 亚洲观看高清完整版在线观看| 亚洲日本乱码在线观看| 中文字幕日韩一区| 国产色综合一区| 91精品国产综合久久久久久 | 久久久综合视频| 337p粉嫩大胆噜噜噜噜噜91av| 日韩欧美激情在线| 欧美精品一区二区三| 久久综合色一综合色88| 国产嫩草影院久久久久| 亚洲日本青草视频在线怡红院| 亚洲乱码国产乱码精品精的特点 | 欧美一区二区黄色| 久久精品亚洲一区二区三区浴池| 日韩理论片一区二区| 青青草视频一区| 成人精品免费视频| 911精品产国品一二三产区| 久久一夜天堂av一区二区三区| 一级日本不卡的影视| 国产一区二区在线影院| 欧美色爱综合网| 国产日本亚洲高清| 日本欧洲一区二区| 91女人视频在线观看| 欧美xxx久久| 亚洲高清中文字幕| 99久久er热在这里只有精品15 | 久久久午夜精品| 亚洲福利一二三区| 国产成人免费视频| 日韩欧美电影一区| 亚洲国产综合视频在线观看| 成人h精品动漫一区二区三区| 日韩欧美一级精品久久| 亚洲伊人伊色伊影伊综合网| 国产成人午夜精品影院观看视频 | 国产一区二区在线影院| 欧美在线观看你懂的| 国产精品视频第一区| 国产在线一区二区综合免费视频| 欧美性一二三区| 亚洲精品乱码久久久久久日本蜜臀| 国产成人福利片| 日韩一区二区三区四区五区六区| 亚洲一区二区在线观看视频| 91丨九色丨国产丨porny| 国产欧美va欧美不卡在线| 美腿丝袜一区二区三区| 69堂亚洲精品首页| 日韩精品成人一区二区在线| 欧美日韩视频在线观看一区二区三区 | 国产视频一区二区在线| 国内精品久久久久影院色| 日韩欧美精品在线| 蜜臀va亚洲va欧美va天堂 | 久久er精品视频| 4438成人网| 免费在线观看一区| 欧美日本在线播放| 日本不卡一区二区三区高清视频| 欧美日韩高清不卡| 日本欧美久久久久免费播放网| 欧美久久一区二区| 日产国产欧美视频一区精品 | 欧美一区二区在线播放| 日韩vs国产vs欧美| 精品久久久久久综合日本欧美| 美女看a上一区| 国产午夜精品在线观看| 国产精品123| 亚洲人精品午夜| 欧美日韩免费电影| 蜜桃视频第一区免费观看| 久久久久久黄色| 91浏览器在线视频| 午夜电影网一区| 久久色在线视频| 91美女在线看| 奇米在线7777在线精品| 国产视频一区在线播放| 欧美自拍偷拍一区| 蜜桃精品视频在线| 国产精品久久久久久久第一福利 | 欧美精品三级日韩久久| 久久精品国产秦先生| 中文在线资源观看网站视频免费不卡 | 日韩国产精品久久久久久亚洲| 欧美变态口味重另类| 99久久婷婷国产综合精品电影 | 色欧美日韩亚洲| 日韩电影免费一区| 国产日韩欧美一区二区三区综合 | 欧美日韩久久久| 国产精品1区2区| 婷婷亚洲久悠悠色悠在线播放| 亚洲精品一区在线观看| 欧洲精品视频在线观看| 蜜臀久久久久久久| 亚洲人成网站精品片在线观看| 日韩视频免费观看高清完整版在线观看 | 精品视频在线免费| 国产精品一区在线观看乱码| 亚洲一区二区精品久久av| 日本一区二区三区高清不卡| 欧美日韩国产天堂| 99精品久久免费看蜜臀剧情介绍| 日韩av中文字幕一区二区三区 | 在线免费不卡电影| 国产成人无遮挡在线视频| 日本不卡视频一二三区| 一区二区三区国产豹纹内裤在线 | 成人手机电影网| 久久精品国内一区二区三区| 亚洲一卡二卡三卡四卡五卡| 国产精品久久久久久妇女6080| 日韩三级视频中文字幕| 欧美日韩一区二区三区高清| 不卡视频在线看| 国产二区国产一区在线观看| 久久99精品久久久| 日韩高清在线电影| 日日夜夜一区二区| 亚洲bt欧美bt精品777| 一区二区三区高清不卡| 中文字幕人成不卡一区| 国产人成一区二区三区影院| 精品久久人人做人人爰| 日韩欧美一区二区不卡| 欧美一区二区三区思思人| 欧美老人xxxx18| 91精品国产91热久久久做人人| 欧美人妇做爰xxxⅹ性高电影| 91色porny| 色婷婷av一区二区三区大白胸| 91蜜桃婷婷狠狠久久综合9色| av电影在线观看完整版一区二区| 高清国产午夜精品久久久久久| 国产精品一卡二卡| 国产91精品精华液一区二区三区| 国产福利一区二区| k8久久久一区二区三区 | 欧美日本一道本| 制服丝袜中文字幕一区| 6080午夜不卡| 精品88久久久久88久久久| 久久久久国产一区二区三区四区| 久久你懂得1024| 国产精品久久久久婷婷二区次| 亚洲视频一区二区在线观看| 亚洲精品水蜜桃| 日本亚洲一区二区| 国产露脸91国语对白| 91亚洲精品一区二区乱码| 色哟哟欧美精品| 91精品国产色综合久久不卡电影 | 国产欧美日韩中文久久| 国产精品久久久久aaaa樱花| 亚洲女同ⅹxx女同tv| 五月激情综合婷婷| 国产精品一区2区| 色综合视频一区二区三区高清| 精品视频一区三区九区| 2022国产精品视频| 亚洲免费观看在线观看| 秋霞影院一区二区| 国产69精品久久777的优势| 欧美综合欧美视频| 2023国产精品| 一区二区三区不卡在线观看| 麻豆精品久久久| 色综合视频一区二区三区高清| 日韩欧美高清一区| 亚洲另类一区二区| 激情久久五月天| 欧美午夜不卡在线观看免费| 欧美精品一区二区在线观看| 一区二区三区四区中文字幕|