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

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

?? uart.c

?? Zigbee無線網絡節點的串口控制LED燈
?? C
字號:
/****************************************************************************
 *
 * MODULE:             uart.c
 *
 * COMPONENT:          $RCSfile: uart.c,v $
 *
 * VERSION:            $Name:  $
 *
 * REVISION:           $Revision: 1.1 $
 *
 * DATED:              $Date: 2008/01/30 09:52:07 $
 *
 * STATUS:             $State: Exp $
 *
 * AUTHOR:             Ian Morris
 *
 * DESCRIPTION
 *
 * CHANGE HISTORY:
 *
 * $Log: uart.c,v $ * Revision 1.1  2008/01/30 09:52:07  lmitch * Updated to work with new SDK * * Revision 1.1  2006/07/24 14:40:11  rmm * First Release 1v0 (Based on Application Note JN-AN-1005-Wireless-UART Version 1.5). *
 *
 *
 * LAST MODIFIED BY:   $Author: lmitch $
 *                     $Modtime: $
 *
 *
 ****************************************************************************
 * * This software is owned by Jennic and/or its supplier and is protected * under applicable copyright laws. All rights are reserved. We grant You, * and any third parties, a license to use this software solely and * exclusively on Jennic products. You, and any third parties must reproduce * the copyright and warranty notice and any other legend of ownership on each * copy or partial copy of the software. * * THIS SOFTWARE IS PROVIDED "AS IS". JENNIC MAKES NO WARRANTIES, WHETHER * EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, * ACCURACY OR LACK OF NEGLIGENCE. JENNIC SHALL NOT, IN ANY CIRCUMSTANCES, * BE LIABLE FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, SPECIAL, * INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR ANY REASON WHATSOEVER. * * Copyright Jennic Ltd 2005, 2006, 2007. All rights reserved * ****************************************************************************/
/****************************************************************************/
/***        Include files                                                 ***/
/****************************************************************************/
#include <jendefs.h>
#include <AppHardwareApi.h>

#include "config.h"
#include "serialq.h"
#include "uart.h"

/****************************************************************************/
/***        Macro Definitions                                             ***/
/****************************************************************************/
#define UART_START_ADR  	0x30000000UL
#define UART_LCR_OFFSET 	0x0C
#define UART_DLM_OFFSET 	0x04

/****************************************************************************/
/***        Type Definitions                                              ***/
/****************************************************************************/

/****************************************************************************/
/***        Local Function Prototypes                                     ***/
/****************************************************************************/

/****************************************************************************/
/***        Exported Variables                                            ***/
/****************************************************************************/

/****************************************************************************/
/***        Local Variables                                               ***/
/****************************************************************************/

/****************************************************************************/
/***        Exported Functions                                            ***/
/****************************************************************************/

/****************************************************************************/
/***        Local Functions                                               ***/
/****************************************************************************/
PRIVATE void vUART_SetBuadRate(uint32 u32BaudRate);

/****************************************************************************
 *
 * NAME: vUART_Init
 *
 * DESCRIPTION:
 *
 * PARAMETERS:      Name            RW  Usage
 * None.
 *
 * RETURNS:
 * None.
 *
 * NOTES:
 * None.
 ****************************************************************************/
PUBLIC void vUART_Init(void)
{
    /* Enable UART 0: 1200-8-N-1 */
    vAHI_UartEnable(UART);

    vAHI_UartReset(UART, TRUE, TRUE);
    vAHI_UartReset(UART, FALSE, FALSE);

    /* Set the clock divisor register to give 1200 buad, this has to be done
       directly as the normal routines (in ROM) do not support 1200 baud */
    vUART_SetBuadRate(UART_BAUD_RATE);

    vAHI_UartSetControl(UART, FALSE, FALSE, E_AHI_UART_WORD_LEN_8, TRUE, FALSE);
    vAHI_UartSetInterrupt(UART, FALSE, FALSE, TRUE, TRUE, E_AHI_UART_FIFO_LEVEL_1);
}

/****************************************************************************
 *
 * NAME: vUART_SetBuadRate
 *
 * DESCRIPTION:
 *
 * PARAMETERS: Name        RW  Usage
 *
 * RETURNS:
 *
 ****************************************************************************/
PRIVATE void vUART_SetBuadRate(uint32 u32BaudRate)
{
    uint8 *pu8Reg;
    uint8  u8TempLcr;
    uint16 u16Divisor;

    /* Put UART into clock divisor setting mode */
    pu8Reg    = (uint8 *)(UART_START_ADR + UART_LCR_OFFSET);
    u8TempLcr = *pu8Reg;
    *pu8Reg   = u8TempLcr | 0x80;

    /* Write to divisor registers:
       Divisor register = 16MHz / (16 x baud rate) */
    u16Divisor = (uint16)(16000000UL / (16UL * u32BaudRate));

    pu8Reg  = (uint8 *)UART_START_ADR;
    *pu8Reg = (uint8)(u16Divisor & 0xFF);
    pu8Reg  = (uint8 *)(UART_START_ADR + UART_DLM_OFFSET);
    *pu8Reg = (uint8)(u16Divisor >> 8);

    /* Put back into normal mode */
    pu8Reg    = (uint8 *)(UART_START_ADR + UART_LCR_OFFSET);
    u8TempLcr = *pu8Reg;
    *pu8Reg   = u8TempLcr & 0x7F;
}

/****************************************************************************
 *
 * NAME: vUART_StartTx
 *
 * DESCRIPTION:
 *
 * PARAMETERS:      Name            RW  Usage
 * None.
 *
 * RETURNS:
 * None.
 *
 * NOTES:
 * None.
 ****************************************************************************/
PUBLIC void vUART_StartTx(void)
{
    /* Has interrupt driven transmit stalled (tx fifo is empty) */
    if (u8AHI_UartReadLineStatus(UART) & E_AHI_UART_LS_THRE)
    {
        if(!bSerialQ_Empty(TX_QUEUE))
        {
            vAHI_UartWriteData(UART, u8SerialQ_RemoveItem(TX_QUEUE));
        }
    }
}

/****************************************************************************
 *
 * NAME: vUART_TxCharISR
 *
 * DESCRIPTION:
 *
 * PARAMETERS:      Name            RW  Usage
 * None.
 *
 * RETURNS:
 * None.
 *
 * NOTES:
 * None.
 ****************************************************************************/
PUBLIC void vUART_TxCharISR(void)
{
    if(!bSerialQ_Empty(TX_QUEUE))
	{
        vAHI_UartWriteData(UART, u8SerialQ_RemoveItem(TX_QUEUE));
	}
}

/****************************************************************************
 *
 * NAME: vUART_RxCharISR
 *
 * DESCRIPTION:
 *
 * PARAMETERS:      Name            RW  Usage
 * None.
 *
 * RETURNS:
 * None.
 *
 * NOTES:
 * None.
 ****************************************************************************/
PUBLIC void vUART_RxCharISR(uint8 u8RxChar)
{
    vSerialQ_AddItem(RX_QUEUE, u8RxChar);
}

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99免费精品视频| 国产精品麻豆久久久| 午夜亚洲国产au精品一区二区| 欧美最猛黑人xxxxx猛交| 国产成人一级电影| 午夜精品久久久久久久蜜桃app| 日韩亚洲欧美一区| 日本韩国欧美在线| 国内精品嫩模私拍在线| 亚洲日本在线a| 久久久久久电影| 欧美欧美欧美欧美首页| 色婷婷av一区二区三区软件 | 日本一区二区成人在线| 欧日韩精品视频| 成人精品一区二区三区四区| 日韩中文欧美在线| 亚洲日本va午夜在线电影| 欧美一级在线视频| 欧美一区二区视频免费观看| 91黄色免费看| 成人免费视频国产在线观看| 麻豆freexxxx性91精品| 91福利视频网站| 成人综合婷婷国产精品久久蜜臀| 美腿丝袜亚洲一区| 麻豆精品在线观看| 免费在线视频一区| 蜜臀久久久99精品久久久久久| 亚洲成人av资源| 青青草97国产精品免费观看 | 在线观看av一区| 在线观看av一区二区| 日本韩国欧美在线| 欧美男生操女生| 精品福利二区三区| 亚洲国产精品激情在线观看 | 亚洲成人777| 蜜桃91丨九色丨蝌蚪91桃色| 激情亚洲综合在线| 不卡一区中文字幕| 欧美日韩国产精品成人| 精品久久久久久久人人人人传媒 | 色婷婷一区二区| 欧美成人国产一区二区| 国产精品三级视频| 午夜精品在线视频一区| 国产精品99久久不卡二区| 色婷婷狠狠综合| 精品国产精品网麻豆系列| 亚洲欧美成aⅴ人在线观看| 日本不卡123| 日本精品视频一区二区| 欧美一区二区三区日韩| 国产精品一区二区在线观看网站| 成人小视频在线观看| 91精品国产91久久久久久最新毛片| 国产精品―色哟哟| 激情五月播播久久久精品| 91电影在线观看| 国产精品每日更新在线播放网址 | 亚洲日本免费电影| 国内精品免费**视频| 日韩精品一区二区三区中文不卡| 亚洲精品v日韩精品| 成人国产视频在线观看| 久久久久久麻豆| 国产麻豆一精品一av一免费| 日韩一卡二卡三卡四卡| 麻豆一区二区99久久久久| 精品国产一区二区三区久久久蜜月| 一区二区三区在线不卡| 欧洲另类一二三四区| 一区二区三区在线视频免费 | 国产在线视频不卡二| 精品99999| 成人av电影观看| 亚洲精品少妇30p| 51午夜精品国产| 国产一区二区不卡| 国产精品久久久久久久久久免费看 | 亚洲精品美国一| 欧美视频在线播放| 日韩av一区二区在线影视| 2022国产精品视频| 日韩一区二区三区免费看| 大胆亚洲人体视频| 天天亚洲美女在线视频| 久久精品日产第一区二区三区高清版 | 91精品国产综合久久国产大片| 精彩视频一区二区| 一区二区三区国产| 久久久综合九色合综国产精品| 日本韩国一区二区三区视频| 国产做a爰片久久毛片| 一区二区三区电影在线播| 久久综合五月天婷婷伊人| 色综合久久中文综合久久97| 久草在线在线精品观看| 亚洲影院理伦片| 亚洲欧美精品午睡沙发| 精品久久一区二区三区| 欧美人动与zoxxxx乱| 色哟哟欧美精品| 色婷婷久久一区二区三区麻豆| 国产麻豆视频一区| 狠狠色丁香婷婷综合| 色狠狠色噜噜噜综合网| 国产在线国偷精品免费看| 日本午夜精品一区二区三区电影| 亚洲成人手机在线| 日韩 欧美一区二区三区| 视频一区中文字幕国产| 午夜欧美大尺度福利影院在线看| 中文字幕在线不卡一区二区三区| 亚洲国产精品激情在线观看| 中文字幕视频一区二区三区久| 最新国产精品久久精品| 亚洲欧美国产77777| 亚洲成人激情av| 免费人成在线不卡| 国产精品综合久久| 成人av在线资源网| 欧美日韩另类国产亚洲欧美一级| 在线观看视频一区二区| 欧美videossexotv100| 国产午夜亚洲精品不卡| 一区二区三区四区在线| 秋霞电影一区二区| 99久久婷婷国产精品综合| 欧美一级在线视频| 亚洲欧美日韩国产一区二区三区| 无吗不卡中文字幕| 成人深夜视频在线观看| 欧美日韩卡一卡二| 欧美高清在线视频| 日韩中文字幕一区二区三区| eeuss鲁一区二区三区| 日韩欧美一级在线播放| 激情深爱一区二区| 色婷婷久久99综合精品jk白丝| 日韩精品在线一区| 日本欧美一区二区| 在线精品亚洲一区二区不卡| 国产喂奶挤奶一区二区三区| 天天色天天爱天天射综合| 欧美午夜电影一区| 伊人性伊人情综合网| 色欧美日韩亚洲| 一区二区三区资源| 欧美日韩一区在线观看| 亚洲精品免费一二三区| 在线观看亚洲精品视频| 国产综合色精品一区二区三区| 3751色影院一区二区三区| 亚洲v精品v日韩v欧美v专区 | 大尺度一区二区| 自拍偷自拍亚洲精品播放| 99re成人精品视频| 亚洲综合色视频| 91精品国产全国免费观看| 男男成人高潮片免费网站| 精品国产99国产精品| www.欧美.com| 日韩主播视频在线| 久久久五月婷婷| 波多野结衣欧美| 夜夜精品浪潮av一区二区三区| 欧美日韩dvd在线观看| 国产盗摄视频一区二区三区| 亚洲日本在线看| 日韩一区二区三区电影在线观看| 国产精品一区二区91| 一区二区在线免费观看| 欧美电影免费观看高清完整版在线观看 | 不卡免费追剧大全电视剧网站| 午夜久久福利影院| 日韩一区在线看| 欧美v日韩v国产v| 欧美在线制服丝袜| av一二三不卡影片| 狠狠色综合色综合网络| 亚洲成人av一区二区| 亚洲欧美福利一区二区| 久久嫩草精品久久久精品| 在线观看91av| 91色九色蝌蚪| 高清不卡一区二区| 精品写真视频在线观看| 丝袜美腿亚洲色图| 亚洲国产美国国产综合一区二区| 亚洲欧美在线视频| 中文字幕在线不卡一区二区三区| 久久精品在线免费观看| 天堂蜜桃一区二区三区 | 久久日韩精品一区二区五区| 日韩亚洲欧美中文三级| 91精品免费在线| 国产亚洲短视频| 亚洲欧洲av在线|