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

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

?? spi.c

?? ARM7Proteus.rar
?? C
字號:
/****************************************Copyright (c)**************************************************
**                               廣州周立功單片機發展有限公司
**                                     研    究    所
**                                        產品一部 
**
**                                 http://www.zlgmcu.com
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: uart0.c
**創   建   人: 陳明計
**最后修改日期: 2003年7月5日
**描        述: μCOS-II下LPC210x的SPI主模式底層驅動 
**              
**--------------歷史版本信息----------------------------------------------------------------------------
** 創建人: 陳明計
** 版  本: v1.0
** 日 期: 2003年7月4日
** 描 述: 原始版本
**
**--------------當前版本修訂------------------------------------------------------------------------------
** 修改人: 陳明計
** 日 期: 2003年7月11日
** 描 述: 更正注釋
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

#define IN_SPI
#include "config.h"

#ifndef  SPI_MOD
#define SPI_MOD     0
#endif 

static OS_EVENT *SPIReviceMbox;
static OS_EVENT *SPISem;
static uint8 UseSPITaskPro;
/*********************************************************************************************************
** 函數名稱: SPIInit
** 功能描述: 初始化SPI總線為主模式
** 輸 入: Fdiv:用于設定總線頻率(總線頻率=Fpclk/Fdiv)
**
** 輸 出:TRUE  :成功
**        FALSE:失敗
** 全局變量: UseSPITaskPro
** 調用模塊: OSMboxCreate,OSSemCreate
**
** 作 者: 陳明計
** 日 期: 2003年7月4日
**-------------------------------------------------------------------------------------------------------
** 修改人: 陳明計
** 日 期: 2003年7月11日
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 SPIInit(uint8 Fdiv)
{
    PINSEL0 = (PINSEL0 & 0xffff00ff) | 0x5500;  /* 選擇管腳為SPI口 */

    SPI_SPCCR = Fdiv & 0xfe;                    /* 分頻值 */
    SPI_SPCR = 0xa0 | SPI_MOD;                  /* 主機、允許中斷 */

    UseSPITaskPro = OS_PRIO_SELF;               /* 避免任務不按照規范編寫程序而使訪問SPI混亂 */
    SPIReviceMbox = OSMboxCreate(NULL);         /* 用于中斷返回收到的數據 */
    if (SPIReviceMbox == NULL)
    {
        return FALSE;
    }
    SPISem = OSSemCreate(1);                    /* 用于互斥訪問SPI總線 */
    if (SPISem != NULL)
    {
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}

/*********************************************************************************************************
** 函數名稱: GetSPIFlag
** 功能描述: 獲取SPI狀態 
** 輸 入: 無
**
** 輸 出:0  :空閑
**        1 :忙
** 全局變量: 無
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 2003年7月5日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 GetSPIFlag(void)
{
    OS_SEM_DATA SemData;
    
    if (OSSemQuery(SPISem, &SemData) == OS_NO_ERR)
    {
        if (SemData.OSCnt != 0)
        {
            return 0;
        }
    }
    return 1;
}

/*********************************************************************************************************
** 函數名稱: SPIStart
** 功能描述: 開始訪問SPI 
** 輸 入: 無
**
** 輸 出:TRUE  :成功
**        FALSE:失敗
** 全局變量: 無
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 2003年7月5日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 SPIStart(void)
{
    uint8 err;
    
    OSSemPend(SPISem, 0, &err);
    UseSPITaskPro = GetOSPrioCur();
    return TRUE;
}

/*********************************************************************************************************
** 函數名稱: SPIRW
** 功能描述: 讀寫SPI 
** 輸 入: Rt  :指向返回值存儲位置
**        Data:發送的數據 
** 輸 出:TRUE  :成功
**        FALSE:失敗
** 全局變量: UseSPITaskPro
** 調用模塊: OSMboxPend,GetOSPrioCur
**
** 作 者: 陳明計
** 日 期: 2003年7月5日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 SPIRW(uint8 *Rt, uint8 Data)
{
    uint8 temp, err;
    
    temp = GetOSPrioCur();
    if (temp == UseSPITaskPro)
    {
        SPI_SPDR = Data;
        temp = (unsigned int)OSMboxPend(SPIReviceMbox, 0, &err);
        *Rt = temp;
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}

/*********************************************************************************************************
** 函數名稱: SPIEnd
** 功能描述: 訪問SPI結束
** 輸 入: 無
**        
** 輸 出:TRUE  :成功
**        FALSE:失敗
** 全局變量: UseSPITaskPro
** 調用模塊: OSSemPost,GetOSPrioCur
**
** 作 者: 陳明計
** 日 期: 2003年7月5日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 SPIEnd(void)
{
    uint8 temp;
    
    temp = GetOSPrioCur();
    if (temp == UseSPITaskPro)
    {
        UseSPITaskPro = OS_PRIO_SELF;
        OSSemPost(SPISem);
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}

/*********************************************************************************************************
** 函數名稱: SPI_Exception
** 功能描述: SPI中斷服務程序
** 輸 入: 無
**
** 輸 出: 無
**         
** 全局變量: 無
** 調用模塊: OSMboxPost
**
** 作 者: 陳明計
** 日 期: 2003年7月5日
**-------------------------------------------------------------------------------------------------------
** 修改人: 
** 日 期: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        void SPI_Exception(void)
{
    uint8 temp, temp1;
    
    OS_ENTER_CRITICAL();
    temp = SPI_SPSR;
    if ((temp & 0x80) != 0)
    {
        temp1 = SPI_SPDR;
        OSMboxPost(SPIReviceMbox, (void *)temp1);
    }
    
    if ((temp & 0x10) != 0)
    {
        SPI_SPCR = 0xa0 | SPI_MOD;
    }
    SPI_SPINT = 0x01;    
    VICVectAddr = 0;            // 通知中斷控制器中斷結束
    OS_EXIT_CRITICAL();
}

/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美久久久影院| 日本欧美久久久久免费播放网| 欧美日韩一区不卡| aaa国产一区| av亚洲产国偷v产偷v自拍| 国产凹凸在线观看一区二区| 国产成人8x视频一区二区| 国产米奇在线777精品观看| 国产成人在线网站| 懂色一区二区三区免费观看| 成人国产精品免费观看| 99久久精品一区| 色婷婷国产精品综合在线观看| 91丝袜高跟美女视频| 在线一区二区观看| 91精品国产综合久久久蜜臀粉嫩| 欧美三级一区二区| 欧美一区日本一区韩国一区| 欧美电影免费观看高清完整版 | 亚洲欧洲无码一区二区三区| 国产欧美精品在线观看| 亚洲视频免费看| 三级影片在线观看欧美日韩一区二区| 午夜欧美在线一二页| 国产曰批免费观看久久久| 91亚洲精品乱码久久久久久蜜桃 | 亚洲123区在线观看| 五月婷婷久久丁香| 精品综合久久久久久8888| 国产一区二区三区黄视频 | 三级欧美在线一区| 国产精品羞羞答答xxdd| 91在线国产观看| 欧美精品日日鲁夜夜添| 欧美激情一区在线| 亚洲成人先锋电影| 国产乱人伦精品一区二区在线观看| 丰满放荡岳乱妇91ww| 欧美体内she精高潮| 久久久蜜臀国产一区二区| 一区二区三区产品免费精品久久75| 日本不卡不码高清免费观看| 国产成a人无v码亚洲福利| 色8久久精品久久久久久蜜| 久久亚洲精华国产精华液 | 精品福利一区二区三区 | 麻豆成人在线观看| www.日韩精品| 欧美一级国产精品| 亚洲一区二区影院| 成人午夜视频网站| 亚洲精品一区二区三区蜜桃下载| 伊人婷婷欧美激情| 国产精品一级片在线观看| 欧美日韩久久不卡| 亚洲丝袜制服诱惑| 国产一区二区三区黄视频| 欧美一卡二卡三卡| 一区二区三区不卡视频| 成人国产精品免费网站| 国产网红主播福利一区二区| 日精品一区二区三区| 色综合久久88色综合天天6| 国产精品毛片大码女人| 国产一区二区在线视频| 91精品国产91久久久久久一区二区| 中文字幕视频一区二区三区久| 久久av资源网| 91精品国产综合久久香蕉麻豆 | 欧美系列亚洲系列| 亚洲蜜臀av乱码久久精品| 国产精品亚洲一区二区三区妖精 | 国产精品一区二区在线观看网站| 欧美日本一区二区三区四区| 亚洲精品v日韩精品| k8久久久一区二区三区| 亚洲国产精品t66y| 不卡一区二区三区四区| 国产精品大尺度| av资源站一区| 亚洲精品大片www| 欧美丝袜丝nylons| 五月天久久比比资源色| 欧美一级午夜免费电影| 裸体一区二区三区| 国产偷国产偷精品高清尤物| 国产大陆a不卡| 国产精品国产三级国产专播品爱网| 国产寡妇亲子伦一区二区| 国产女人18毛片水真多成人如厕| 国产激情视频一区二区在线观看 | 国产综合色在线| 国产日韩精品一区二区三区在线| www.在线欧美| 婷婷久久综合九色国产成人| 日韩精品一区二区三区视频播放 | 亚洲国产日日夜夜| 欧美一区二区三区小说| 国产麻豆视频一区| 亚洲欧美一区二区三区极速播放| 日本精品一区二区三区四区的功能| 亚洲一区av在线| 精品999在线播放| 91在线porny国产在线看| 亚洲18影院在线观看| 久久免费午夜影院| 在线精品视频一区二区三四| 丝袜亚洲精品中文字幕一区| 精品久久久影院| 91蜜桃在线观看| 久久99国产精品久久99| 亚洲欧洲性图库| 欧美大片国产精品| 色综合咪咪久久| 久久精品国产亚洲5555| 亚洲欧美一区二区三区久本道91| 日韩免费观看2025年上映的电影| 成人av电影在线观看| 五月婷婷激情综合| 亚洲视频狠狠干| 精品电影一区二区| 欧美伊人久久久久久久久影院| 韩国一区二区三区| 亚洲午夜精品在线| 国产精品国产三级国产| 日韩视频免费观看高清完整版在线观看 | 欧美三级韩国三级日本三斤| 国产乱子伦视频一区二区三区| 亚洲成人免费影院| 日韩美女精品在线| 国产日韩欧美精品电影三级在线| 欧美日韩一卡二卡| 91女厕偷拍女厕偷拍高清| 国产成人免费在线| 久久99国产精品久久99| 亚洲成a人片在线观看中文| 国产精品成人一区二区三区夜夜夜| 欧美精品一区二区三区久久久| 欧美日韩免费电影| 成人激情动漫在线观看| 国产福利一区二区三区| 捆绑调教美女网站视频一区| 香蕉久久夜色精品国产使用方法| 伊人开心综合网| 亚洲欧洲性图库| 国产精品久久久久久户外露出| 久久精品欧美日韩精品| 久久午夜电影网| 久久久久久黄色| 久久久久9999亚洲精品| 久久九九影视网| 26uuu精品一区二区三区四区在线| 欧美一级黄色录像| 精品久久久三级丝袜| 精品va天堂亚洲国产| 国产视频一区二区在线观看| 久久久久久久久久久久久女国产乱| 久久久久久亚洲综合| 国产精品美女一区二区三区| 欧美高清在线一区二区| 欧美激情中文字幕| 一区二区三区中文字幕| 亚洲国产一区在线观看| 日韩av一区二| 精品一区二区三区久久| 国产在线不卡一卡二卡三卡四卡| 国产精品一区二区黑丝| www.成人网.com| 欧美在线短视频| 欧美一区二区三区免费| 久久久久国产成人精品亚洲午夜| 久久久久一区二区三区四区| 亚洲视频网在线直播| 男人的天堂亚洲一区| 久久成人精品无人区| 粉嫩13p一区二区三区| 欧美性感一类影片在线播放| 欧美va亚洲va| 亚洲欧美另类久久久精品| 日韩精品久久理论片| 国产精品 欧美精品| 欧美亚洲尤物久久| 日韩精品一区二区三区在线播放 | 69久久99精品久久久久婷婷 | 欧美在线一二三| 欧美不卡一区二区三区| 国产精品美女视频| 天堂影院一区二区| 国产乱人伦精品一区二区在线观看 | av成人老司机| 日韩免费性生活视频播放| 国产精品亲子伦对白| 亚洲成av人**亚洲成av**| 国产成人免费网站| 日韩西西人体444www| 亚洲色欲色欲www在线观看| 久久se这里有精品| 欧美性色黄大片| 中文字幕一区二区日韩精品绯色| 蜜桃精品视频在线观看|