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

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

?? uart.c

?? UART ADI example 簡單的例子 練練手
?? C
字號:
/****************************************Copyright (c)****************************************************
**                            Guangzhou ZHIYUAN electronics Co.,LTD.
**                                      
**                                 http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name:               uart.c
** Latest modified Date:    2008-8-20
** Latest Version:          1.0
** Descriptions:            串口外設的操作函數
**
**--------------------------------------------------------------------------------------------------------
** Created by:              CaiWenqi
** Created date:            2008-8-20
** Version:                 1.0
** Descriptions:            The original version
**
**--------------------------------------------------------------------------------------------------------
** Modified by:             
** Modified date:           
** Version:                 
** Descriptions:            
**
*********************************************************************************************************/
#include    "config.h"

/*********************************************************************************************************
** Function name:       siciwrSetup
** Descriptions:        設置系統中斷喚醒使能寄存器
** Input parameters:    uiPara: 見頭文件,多個設置使用或操作然后傳入此參數
**                      usEnable:   ENABLE  -- 使能
**                                  DISABLE -- 禁能
** Output parameters:   NONE
** Returned value:      NONE
*********************************************************************************************************/
void uartBaudSet (uint16 usBaud)
{
    uint16 divisor;                                                     /* 保存計算的除數值             */
    uint16 msel;       
    uint16 ssel;       

    msel = ((*pPLL_CTL) >> 9) & 0x003f;                                 /* 獲取PLL中VCO的倍頻數         */
    ssel = (*pPLL_DIV) & 0x000f;                                        /* 獲取分頻SSEL,SCLK = VCO/SSEL */

    divisor = ((msel * CLKIN)/(ssel * usBaud)) >> 4;                    /* 計算除數                     */
    
    if (*pPLL_CTL & 0x1) {                                              /* PLL入口時鐘是否為CLKIN/2     */
        divisor = divisor >> 1; 
    } 
    
    *pUART_LCR |= (1 << 7);                                             /* 使能除數鎖存                 */
    ssync();                                                            /* 命令立即生效                 */
    *pUART_DLL = divisor & 0x00ff;                                      /* 賦低八位                     */
    ssync();
    *pUART_DLH = (divisor >> 8);                                        /* 賦高八位                     */
    ssync();
    *pUART_LCR &= (~((uint16)1<<7));                                    /* 禁能除數鎖存                 */ 
    ssync();
}

/*********************************************************************************************************
** Function name:       uartConfig
** Descriptions:        設置UART基本通訊參數
** Input parameters:    usBaud            :    設置的波特率
**                      usByteLength      :    數據長度,可取 5, 6 ,7 ,8 
**                      usStopbit         :    停止位寬度,可取 1, 2
**                      usParityCheck     :    PARITY_DIS -- 不進行校驗
**                                             PARITY_ODD -- 進行奇校驗
**                                             PARITY_EVEN-- 進行偶校驗
** Output parameters:   NONE
** Returned value:      true -- 成功設置,false -- 設置失敗
*********************************************************************************************************/
uint16 uartConfig (uint16 usBaud, 
                   uint16 usByteLength,
                   uint16 usStopbit,
                   uint16 usParityCheck)
{    
    uint16 usTmpLCR;
    uint16 usTmpRBR;
    usTmpLCR = 0;
    
    uartBaudSet(usBaud);                                                /* 設置波特率                   */
    
    switch (usByteLength) {                                             /* 設置數據長度                 */
    
    case 5:
        usTmpLCR = LEN_5BIT;
        break;
        
    case 6:
        usTmpLCR = LEN_6BIT;
        break;
        
    case 7:
        usTmpLCR = LEN_7BIT;
        break;
        
    case 8:
        usTmpLCR = LEN_8BIT;
        break;
        
    default:
        return false;
    }
    
    switch (usStopbit) {
        
    case 1:
         break;
         
    case 2:
        usTmpLCR |= STOP_2BIT;
        break;
        
    default:
        return false;
    }
    
    switch (usParityCheck) {                                            /* 設置奇偶校驗                 */
    
    case PARITY_DIS:
        break;    
        
    case PARITY_ODD:
        usTmpLCR |= PARITY_EN;
        break;
    
    case PARITY_EVEN:
        usTmpLCR |= (PARITY_E | PARITY_EN);
        break;
    
    default:
        return false;
    }
    
    usTmpRBR = *pUART_RBR;                                              /* 清除可能的殘留數據           */
    *pUART_LCR = usTmpLCR;                                              /* 回寫UART_LCR寄存器,完成配置 */   
    ssync();
    *pUART_GCTL |= 1;                                                   /* 打開UART時鐘                 */
    ssync(); 
    return true;
}





/*********************************************************************************************************
** Function name:       uartSendChar
** Descriptions:        發送單個字符
** Input parameters:    cChar : 發送字符
** Output parameters:   NONE
** Returned value:      NONE
*********************************************************************************************************/
void uartSendChar(char cChar)
{
	uint16 i;
    while ((*pUART_LSR & (1<<5)) == 0) {
        asm("nop;");
    }
    for (i = 0; i<0x0fff; i ++) {
        asm("nop;");
    }
    *pUART_THR = cChar;
	ssync();
}

/*********************************************************************************************************
** Function name:       uartSendStr
** Descriptions:        發送字符串
** Input parameters:    cStr : 字符串指針
** Output parameters:   NONE
** Returned value:      NONE
*********************************************************************************************************/
void uartSendStr(char *cStr)
{
	uint32 i;
	i = 0;
    while (cStr[i] != '\0') {
        uartSendChar(cStr[i++]);
    }
}

/*********************************************************************************************************
** Function name:       uartConfigDMA
** Descriptions:        設置DMA方式下的UART基本通訊參數
** Input parameters:    usBaud            :    設置的波特率
**                      usByteLength      :    數據長度,可取 5, 6 ,7 ,8 
**                      usStopbit         :    停止位寬度,可取 1, 2
**                      usParityCheck     :    PARITY_DIS -- 不進行校驗
**                                             PARITY_ODD -- 進行奇校驗
**                                             PARITY_EVEN-- 進行偶校驗
** Output parameters:   NONE
** Returned value:      true -- 成功設置,false -- 設置失敗
*********************************************************************************************************/
/*uint16 uartConfigDMA (uint16 usBaud, 
                      uint16 usByteLength,
                      uint16 usStopbit,
                      uint16 usParityCheck
                      uint16 usDMAx)
{
    uartConfig(usBaud, usByteLength, usStopbit, usParityCheck);
    
}*/
/*********************************************************************************************************
** Function name:       uartSendStrDMA
** Descriptions:        通過DMA發送字符串
** Input parameters:    cStr : 字符串指針
** Output parameters:   NONE
** Returned value:      NONE
*********************************************************************************************************/
/*void uartSendStrDMA(char *cStr)
{
	uint32 i;
	i = 0;
    while (cStr[i] != '\0') {
        uartSendChar(cStr[i++]);
    }
}*/




/*********************************************************************************************************
** Function name:       uartISR
** Descriptions:        設置UART基本通訊參數
** Input parameters:    usBaud            :    設置的波特率
**                      usByteLength      :    數據長度,可取 5, 6 ,7 ,8 
**                      usStopbit         :    停止位寬度,可取 1, 2
**                      usParityCheck     :    PARITY_DIS -- 不進行校驗
**                                             PARITY_ODD -- 進行奇校驗
**                                             PARITY_EVEN-- 進行偶校驗
** Output parameters:   NONE
** Returned value:      true -- 成功設置,false -- 設置失敗
*********************************************************************************************************/
void uartISR (void)
{
	uint16 usIIRv;
	uint16 usIIR;
	uint16 usLSR;
	char  ucRcv;
	
	usIIR = *pUART_IIR;                                                    /* 同時清除可能的THR中斷請求 */
	usIIRv = usIIR & 0x60;
	
	if (!(usIIR & HAVE_INT)) {                                             /* 有中斷產生                */
	    
	    if (usIIRv == HAVE_LSR_INT) {                                      /* 發生線狀態中斷            */
            usLSR = *pUART_LSR;                                            /* 同時清除線狀態中斷請求    */
	    }
	    
	    if (usIIRv == HAVE_RBR_INT) {                                      /* 接收數據可用中斷          */
	        ucRcv = *pUART_RBR;                                            /* 同時清除中斷請求          */
	        uartSendChar(ucRcv);
	    }
	    
	    if (usIIRv == HAVE_THRE_INT) {                                     /* 發送數據結束中斷          */
	    
	    }
	}
}

/*********************************************************************************************************
  END FILE
*********************************************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品国产三级国产普通话99 | 国产喷白浆一区二区三区| 日日嗨av一区二区三区四区| 3atv一区二区三区| 免费精品视频最新在线| 精品剧情在线观看| 国产精品亚洲成人| 中文字幕一区二区三区在线观看 | 国产精品视频一区二区三区不卡| 成人动漫视频在线| 一区二区三区四区不卡视频 | 日韩色视频在线观看| 国产精品一区免费在线观看| 国产精品大尺度| 欧美少妇一区二区| 久久国产视频网| 国产精品久久久久国产精品日日| 在线精品视频免费观看| 日韩中文字幕亚洲一区二区va在线| 精品国产三级电影在线观看| av成人动漫在线观看| 天天综合网 天天综合色| 欧美一级爆毛片| 福利一区在线观看| 亚洲小说欧美激情另类| 精品免费99久久| 一本高清dvd不卡在线观看| 日本欧美在线看| 中文字幕亚洲综合久久菠萝蜜| 欧美自拍偷拍午夜视频| 国产电影精品久久禁18| 一区2区3区在线看| 欧美夫妻性生活| 欧美精品亚洲二区| 国产又黄又大久久| 一区二区国产盗摄色噜噜| 久久―日本道色综合久久| 在线亚洲人成电影网站色www| 免费精品视频最新在线| 亚洲激情在线激情| 久久久久久久久久久久电影| 欧美视频在线一区| 北条麻妃一区二区三区| 美腿丝袜在线亚洲一区| 亚洲激情欧美激情| 日本一区二区成人| 日韩亚洲欧美在线| 欧美美女激情18p| 波多野结衣欧美| 国产在线不卡一卡二卡三卡四卡| 午夜伦理一区二区| 亚洲最新视频在线观看| 国产精品热久久久久夜色精品三区| 日韩欧美亚洲一区二区| 欧美午夜宅男影院| 色婷婷激情久久| 成人深夜福利app| 国产精品一级黄| 麻豆传媒一区二区三区| 五月婷婷激情综合网| 亚洲女人****多毛耸耸8| 国产精品三级在线观看| 亚洲国产成人在线| 久久美女艺术照精彩视频福利播放| 欧美一级欧美一级在线播放| 在线亚洲高清视频| 欧美自拍偷拍午夜视频| 在线这里只有精品| 色香蕉久久蜜桃| 色爱区综合激月婷婷| 91免费小视频| 91小视频在线免费看| eeuss国产一区二区三区| 成人av在线一区二区三区| 高清beeg欧美| 99精品视频在线免费观看| 成年人国产精品| av在线播放一区二区三区| 国产不卡免费视频| 不卡视频在线看| 色偷偷久久一区二区三区| 色综合激情久久| 欧美精品1区2区3区| 欧美日韩国产三级| 制服丝袜日韩国产| 欧美一区二区三区视频在线| 日韩一级片在线观看| 日韩一区二区三区在线视频| 精品国产伦一区二区三区免费| 26uuu国产在线精品一区二区| 国产偷v国产偷v亚洲高清| 亚洲欧洲日韩综合一区二区| 亚洲免费av观看| 午夜伊人狠狠久久| 麻豆精品一区二区综合av| 国产一区二区三区| www.av精品| 欧美三级电影在线观看| 日韩一区二区高清| 国产精品色呦呦| 亚洲成a人片综合在线| 麻豆91小视频| 99久久久国产精品| 欧美精三区欧美精三区| 精品国产区一区| 亚洲免费在线观看视频| 天堂在线亚洲视频| 国产成人免费视| 欧美视频一二三区| 国产日韩亚洲欧美综合| 亚洲综合另类小说| 国产露脸91国语对白| 色噜噜偷拍精品综合在线| 日韩欧美国产综合在线一区二区三区| 国产日韩精品视频一区| 亚洲成人你懂的| 国产不卡视频一区| 555www色欧美视频| 国产精品久久久一本精品| 日韩成人免费看| 99国产精品国产精品毛片| 4438亚洲最大| 国产精品午夜春色av| 免费成人在线观看| 色婷婷久久久久swag精品| 精品免费日韩av| 亚洲成人午夜影院| 99久久伊人久久99| 精品国产sm最大网站免费看| 一区二区三区中文字幕电影| 国产成人午夜精品5599| 欧美日韩国产高清一区二区| 国产精品国产三级国产普通话三级| 免费xxxx性欧美18vr| 在线精品视频免费观看| 日本一区二区三级电影在线观看| 日韩高清一区二区| gogo大胆日本视频一区| 国产婷婷色一区二区三区| 蜜臀av一区二区在线观看| 欧美色综合影院| 一区二区国产盗摄色噜噜| av一本久道久久综合久久鬼色| 久久久亚洲精品石原莉奈| 日本伊人色综合网| 欧美精品乱码久久久久久按摩 | 日韩欧美二区三区| 亚洲成av人片一区二区| 97se亚洲国产综合自在线不卡| 久久久久国产成人精品亚洲午夜| 亚洲成人av中文| 欧美日韩国产色站一区二区三区| 一区二区免费视频| 色婷婷精品久久二区二区蜜臂av| 国产精品久久久久桃色tv| 国产露脸91国语对白| 欧美mv日韩mv国产网站app| 男女男精品视频| 日韩一级片网址| 精品亚洲成a人| 精品美女被调教视频大全网站| 日韩—二三区免费观看av| 91精品国产91综合久久蜜臀| 亚洲bt欧美bt精品777| 欧美福利视频导航| 免费看欧美女人艹b| 日韩免费观看高清完整版| 免费观看一级欧美片| 日韩美女天天操| 国产精品一区在线观看乱码| 日本一区二区视频在线观看| 成人激情文学综合网| 18成人在线观看| 色综合久久中文综合久久97| 亚洲欧美乱综合| 欧美日韩三级一区二区| 日韩电影在线免费观看| 日韩欧美美女一区二区三区| 国产一区二区三区久久久| 国产精品网站在线观看| 91免费看`日韩一区二区| 亚洲精品国产a| 欧美丰满嫩嫩电影| 久久99国内精品| 国产精品乱码一区二区三区软件 | 国产午夜精品一区二区三区视频| 成人av网站在线观看| 亚洲另类春色校园小说| 欧美电影在线免费观看| 欧美午夜一区二区三区| 日韩av高清在线观看| 久久精品一区蜜桃臀影院| 91在线免费看| 日韩电影一二三区| 久久亚洲综合av| 91搞黄在线观看| 久久草av在线| 亚洲激情成人在线| 日韩午夜小视频| 91片在线免费观看|