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

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

?? uart.c

?? 老外的一個開源項目
?? C
字號:
// Copyright (c) David Vescovi.  All rights reserved.
// Part of Project DrumStix
// Windows Embedded Developers Interest Group (WE-DIG) community project.
// http://www.we-dig.org
// Copyright (c) Microsoft Corporation.  All rights reserved.
//------------------------------------------------------------------------------
//
//  File: uart.c
//
//------------------------------------------------------------------------------
#include <bsp.h>


static volatile UART_REG_T	*pUARTRegs;


//------------------------------------------------------------------------------
//
//  Function:   UARTInit
//
//  Initialize kitl serial port
//
//------------------------------------------------------------------------------
BOOL UARTInit(KITL_SERIAL_INFO *pInfo)
{
    BOOL rc = FALSE;
	
	pUARTRegs = (volatile UART_REG_T *)pInfo->pAddress;

	// Check if config paramters are supportable
	if (
		pInfo->baudRate < 9600 || pInfo->baudRate > 115200 ||
		pInfo->dataBits != 8 || pInfo->stopBits == 0 || pInfo->parity > 2
	) goto cleanUp;

    // Ensure that UART interrupts are turned off.
    //
    pUARTRegs->LCR     = 0x0;    // Clear DLAB.
    pUARTRegs->IER_DLH = 0x0;    // IER_DLH = 0x0.

    // Set the Baud Rate.
    // The divisor latches are at offsets 0 and 1, which are 
    // receive/transmit data and ier registers.
    //
    pUARTRegs->LCR         = 0x80;                // Access Divisor.
    pUARTRegs->THR_RBR_DLL = (14745600/pInfo->baudRate)/16; // Low byte divisor.
    pUARTRegs->IER_DLH     = 0x00;                // High byte divisor.
    pUARTRegs->LCR         = 0x0;                 // Clear DLAB.

    //Setting UART properties to 8N1 
    //
    pUARTRegs->LCR         = 0x3;     // 8 bits, 1 stop, no parity. Also LCR DLAB bit = 0.

    pUARTRegs->IIR_FCR     = 0x01;    // Enable the FIFO.
    pUARTRegs->IIR_FCR     = 0x07;    // Clear Rx,Tx FIFOs.

    // Don't enable UART interrupts - we'll poll for the data.
    //
    pUARTRegs->IER_DLH     = 0x0;  

    // Ensure loop-back test mode is off even though MCR reset value is 0x0. 
    //
    pUARTRegs->MCR         = 0x0;    // UART is in normal mode.
	//UART in auto handshake mode ... if it supports it

    // Enable the UART.
    //
    pUARTRegs->IER_DLH = 0x40;

	pInfo->bestSize = 1;       // read it one by one

	// Done
    rc = TRUE;
    
cleanUp:
    return rc;
}

//------------------------------------------------------------------------------
//
//  Function:  UARTSend
//
//------------------------------------------------------------------------------
UINT16 UARTSend(UINT8 *pData, UINT16 size)
{

    // This should not happen, but to be sure
    if (size == 0) return 0;

	// Spin if FIFO has more than half data.
    //
    while(!(pUARTRegs->LSR & UART_LSR_TDRQ));

	// Write a character byte to the FIFO.
    //
    pUARTRegs->THR_RBR_DLL = *pData;
    // We send only one char per call
	
	return 1;
}


//------------------------------------------------------------------------------
//
//  Function:  UARTFlowControl
//
//------------------------------------------------------------------------------
VOID UARTFlowControl(BOOL fOn)
{
	UINT32 uCtrl = (pUARTRegs->MCR & ~UART_MCR_RTS);

	pUARTRegs->MCR = (uCtrl | (fOn ? UART_MCR_RTS : 0));

	if (fOn) {
		// clear interrupts, if applicable
		uCtrl = pUARTRegs->IIR_FCR;
	}
}


//------------------------------------------------------------------------------
//
//  Function:  UARTRecv
//
//------------------------------------------------------------------------------
UINT16 UARTRecv(UINT8 *pData, UINT16 size)
{
    UINT32 lsr;
    UINT16 count = 0;

    count = 0;
	// Read LSR.
	lsr = pUARTRegs->LSR;
	if(lsr & UART_LSR_DR) {
		if (lsr & (UART_LSR_PE | UART_LSR_FE | UART_LSR_OE)) {
			KITL_RETAILMSG(ZONE_INIT, ("E\r\n"));
			pUARTRegs->IIR_FCR = (UART_FCR_RESETTF | UART_FCR_RESETRF | UART_FCR_TRFIFOE);
		} else {
			*pData = (UINT8)pUARTRegs->THR_RBR_DLL;
			count = 1;
		}
	}
	return count;
}

//------------------------------------------------------------------------------
//
//  Function:  UARTEnableInts
//
//------------------------------------------------------------------------------
void UARTEnableInts()
{
}

//------------------------------------------------------------------------------
//
//  Function:  UARTDisableInts
//
//------------------------------------------------------------------------------
void UARTDisableInts()
{
}

//------------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
不卡一区二区在线| 97se亚洲国产综合自在线| 亚洲欧洲精品一区二区三区| 欧美久久一区二区| 99精品视频在线播放观看| 美女性感视频久久| 一区二区三区高清不卡| 欧美极品少妇xxxxⅹ高跟鞋| 日韩精品最新网址| 欧美午夜精品一区| 91蝌蚪porny| 粉嫩av一区二区三区在线播放| 五月婷婷欧美视频| 一区二区三区毛片| 综合色天天鬼久久鬼色| 国产亚洲女人久久久久毛片| 日韩一区二区电影在线| 欧美主播一区二区三区| 日本伦理一区二区| 91麻豆免费看片| 不卡影院免费观看| 国产凹凸在线观看一区二区 | 日韩中文字幕麻豆| 亚洲精品乱码久久久久久日本蜜臀| 国产肉丝袜一区二区| 欧美mv日韩mv| 欧美精品一区二区三区很污很色的 | 99re66热这里只有精品3直播 | 国产精品理论在线观看| 国产日产欧产精品推荐色| 日韩亚洲欧美综合| 欧美一区二区高清| 日韩亚洲欧美成人一区| 91精品国产综合久久久久久 | 精品久久一区二区| 日韩视频免费直播| 日韩久久精品一区| 久久在线观看免费| 久久综合久久综合久久综合| 26uuu久久综合| 26uuu国产一区二区三区| 精品成人免费观看| 久久午夜色播影院免费高清 | 亚洲乱码国产乱码精品精小说 | 精品国产麻豆免费人成网站| 欧美不卡123| 久久亚洲精品小早川怜子| 国产婷婷色一区二区三区| 国产精品热久久久久夜色精品三区| 国产精品入口麻豆原神| 亚洲美腿欧美偷拍| 亚洲第一狼人社区| 美女高潮久久久| 国产福利一区二区三区视频在线 | 国产精品久久久久影院老司| 国产精品国产三级国产普通话蜜臀| 中文字幕欧美一| 亚洲一二三四在线观看| 日韩国产成人精品| 国产呦萝稀缺另类资源| 成人免费av在线| 91视频在线看| 6080国产精品一区二区| 精品国产亚洲一区二区三区在线观看| 久久欧美中文字幕| 亚洲欧美日韩久久| 婷婷久久综合九色国产成人| 国产麻豆视频一区二区| 日本高清不卡一区| 2019国产精品| 亚洲一区免费视频| 激情综合网av| 色综合久久天天| 欧美一级免费观看| 国产精品三级视频| 日韩主播视频在线| www.亚洲人| 欧美一区二区三区播放老司机| 国产欧美一区二区三区在线老狼| 亚洲欧美日韩中文播放| 理论片日本一区| av资源站一区| 欧美videossexotv100| 亚洲免费资源在线播放| 精品一区二区三区蜜桃| 在线亚洲高清视频| 26uuu亚洲| 日本特黄久久久高潮| 91日韩精品一区| 精品少妇一区二区三区免费观看| 亚洲另类色综合网站| 久久99国产精品免费| 91黄色在线观看| 欧美高清一级片在线观看| 日韩不卡一二三区| 91免费国产在线| 国产网站一区二区三区| 日本欧美肥老太交大片| 色88888久久久久久影院野外| 国产日韩视频一区二区三区| 人人精品人人爱| 在线观看国产日韩| 18欧美乱大交hd1984| 国产一区二三区好的| 9191精品国产综合久久久久久| ...中文天堂在线一区| 国产九色精品成人porny| 欧美体内she精高潮| 最新日韩av在线| 成人在线视频一区二区| 日韩欧美高清一区| 日韩电影在线一区| 欧美日韩成人综合在线一区二区 | 国产精品资源站在线| 欧美一级黄色大片| 日本女人一区二区三区| 欧美专区日韩专区| 亚洲免费高清视频在线| 大尺度一区二区| 国产女主播一区| 丰满亚洲少妇av| 日本一区免费视频| 国产福利不卡视频| 久久九九久久九九| 精品影视av免费| 精品毛片乱码1区2区3区| 奇米精品一区二区三区在线观看一| 在线观看日韩一区| 亚洲精品久久7777| 一本一本大道香蕉久在线精品| 自拍视频在线观看一区二区| 99久久国产综合色|国产精品| 国产欧美日韩精品在线| 成年人网站91| 亚洲女同一区二区| 色欧美乱欧美15图片| 一区2区3区在线看| 欧美日韩精品一区二区在线播放| 亚洲第一成年网| 这里只有精品99re| 蜜桃传媒麻豆第一区在线观看| 日韩欧美一区中文| 国产美女主播视频一区| 中文无字幕一区二区三区| 9l国产精品久久久久麻豆| 亚洲人成7777| 欧美日韩精品是欧美日韩精品| 午夜精品aaa| 欧美成人伊人久久综合网| 久久国产人妖系列| 国产欧美一区二区精品性| 不卡一卡二卡三乱码免费网站| 亚洲日本中文字幕区| 欧美网站大全在线观看| 日韩国产欧美在线视频| 日韩欧美成人激情| 国产v综合v亚洲欧| 亚洲综合图片区| 日韩精品一区二区三区四区视频| 国产福利一区在线| 亚洲影视在线播放| 7777精品伊人久久久大香线蕉完整版| 麻豆91在线播放免费| 国产精品久久三区| 欧美人体做爰大胆视频| 黄一区二区三区| 亚洲欧美日韩国产综合| 91精品在线免费观看| 国产精品中文字幕一区二区三区| 中文字幕视频一区| 欧美一区二区三区免费大片| 成人国产视频在线观看| 日日摸夜夜添夜夜添国产精品 | 成人免费观看av| 亚洲国产综合人成综合网站| 日韩免费一区二区| 色呦呦网站一区| 极品少妇一区二区| 亚洲国产精品天堂| 久久久精品黄色| 精品婷婷伊人一区三区三| 国产自产2019最新不卡| 亚洲最新视频在线观看| 亚洲精品一区二区在线观看| 色呦呦一区二区三区| 韩日欧美一区二区三区| 亚洲国产日韩av| 日本一区二区动态图| 51精品视频一区二区三区| 成人白浆超碰人人人人| 麻豆精品一区二区三区| 亚洲精品中文在线影院| 久久综合99re88久久爱| 欧美日韩成人一区| 99久久伊人精品| 国产高清久久久久| 青青国产91久久久久久| 亚洲一区视频在线观看视频| 欧美激情综合五月色丁香| 精品国产自在久精品国产|