wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

新唐M051 spi使用程序

作者:huqin   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年09月01日   【字體:

#include "SPI.h"
#define DEBUGMSG printf
STATIC UINT32  g_unSpi0Rx0Data = 0, g_unSpi1Rx0Data = 0;
/****************************************
*函數(shù)名稱:Spi0MasterInit
*輸    入:無(wú)
*輸    出:無(wú)
*功    能:SPI0初始化為主機(jī)模式
******************************************/
VOID Spi0MasterInit(VOID)
{                                    
    P1_MFP &= ~(P14_AIN4_SPI0SS | P15_AIN5_SPI0MOSI | P16_AIN6_SPI0MISO | P17_AIN7_SPI0CLK); 
 P1_MFP |= (SPI0SS | SPI0MOSI | SPI0MISO | SPI0CLK) ;      //使能SPI0相關(guān)引腳
 ENABLE_SPI0_CLK;         //SPI0時(shí)鐘使能                  
    SPI0_SSR &= ~LVL_H;           //從機(jī)選擇選擇信號(hào)通過(guò)低電平激活
    SPI0_CNTRL &= ~LSB_FIRST;    //優(yōu)先發(fā)送/接收最高有效位
    SPI0_CNTRL &= ~CLKP_IDLE_H;      //SCLK空閑時(shí)為低電平
    SPI0_CNTRL |= TX_NEG_F;       //SDO 信號(hào)在SPICLK的下降沿改變
    SPI0_CNTRL &= ~RX_NEG_F;       //SDI 信號(hào)在SPICLK上升沿鎖存
    CLKDIV &= 0xFFFFFFF0;               //HCLK_N = 0, Pclk = SYSclk/(HCLK_N+1)
    SPI0_DIVIDER &= 0xFFFF0000;         //SPIclk = Pclk/((HCLK_N+1)*2)
    SPI0_DIVIDER |= 0x00000002;   
    SET_SPI0_MASTER_MODE;            //SPI0工作在主機(jī)模式
    ENABLE_SPI0_AUTO_SLAVE_SLECT;    //使能自動(dòng)從機(jī)選擇
    SPI0_SSR |= SSR_ACT;     
}
/****************************************
*函數(shù)名稱:Spi0Send1W
*輸    入:ulData    發(fā)送的數(shù)據(jù)
          ucLength  數(shù)據(jù)長(zhǎng)度
*輸    出:無(wú)
*功    能:SPI0發(fā)送數(shù)據(jù)
******************************************/
VOID Spi0Send1W(UINT32 ulData, UINT8 ucLength)
{
    SPI0_CNTRL &= TX_NUM_ONE;      
    Spi0Length(ucLength);
    SPI0_TX0 = ulData;
    SPI0_CNTRL |= GO_BUSY;         
}

 

/****************************************
*函數(shù)名稱:GetSlaveID
*輸    入:無(wú)
*輸    出:無(wú)
*功    能:獲取從機(jī)ID
******************************************/
VOID GetSlaveID(VOID)
{
    Spi0Send1W(0x00000055, 0x08);
    while((SPI0_CNTRL & GO_BUSY)!=0);

    Spi0Send1W(0x00000000, 0x08);
    while((SPI0_CNTRL & GO_BUSY)!=0);
    g_unSpi0Rx0Data = SPI0_RX0;
}
/****************************************
*函數(shù)名稱:Spi0Length
*輸    入:ucLength 數(shù)據(jù)長(zhǎng)度
*輸    出:無(wú)
*功    能:設(shè)置SPI0數(shù)據(jù)長(zhǎng)度
******************************************/
VOID Spi0Length(UINT8 ucLength)
{
     if(ucLength <= 0x20)
    {
        if((ucLength & 0x01) == 0)
            SPI0_CNTRL &= ~(1<<3);
        else
            SPI0_CNTRL |= (1<<3);
        if((ucLength & 0x02) == 0)
            SPI0_CNTRL &= ~(1<<4);
        else
            SPI0_CNTRL |= (1<<4);

        if((ucLength & 0x04) == 0)
            SPI0_CNTRL &= ~(1<<5);
        else
            SPI0_CNTRL |= (1<<5);

        if((ucLength & 0x08) == 0)
            SPI0_CNTRL &= ~(1<<6);
        else
            SPI0_CNTRL |= (1<<6);

        if((ucLength & 0x10) == 0)
            SPI0_CNTRL &= ~(1<<7);
        else
            SPI0_CNTRL |= (1<<7);
    }
}
/****************************************
*函數(shù)名稱:Spi1SlaveInit
*輸    入:無(wú)
*輸    出:無(wú)
*功    能:SPI1初始化為從機(jī)
******************************************/
VOID Spi1SlaveInit(VOID)
{                              
    P0_MFP &= ~(P04_AD4_SPI1SS | P05_AD5_SPI1MOSI | P06_AD6_SPI1MISO | P07_AD7_SPI1CLK); 
 
 P0_MFP |= (SPI1SS | SPI1MOSI | SPI1MISO | SPI1CLK) ;      //使能SPI1相關(guān)引腳 
 ENABLE_SPI1_CLK; 
 SPI1_SSR &= LTRIG_EDG;         //從機(jī)輸入邊沿觸發(fā)
    SPI1_SSR &= ~LVL_H;          //從機(jī)選擇選擇信號(hào)通過(guò)低電平激活

    SPI1_CNTRL &= ~LSB_FIRST;      //優(yōu)先發(fā)送/接收最高有效位
    SPI1_CNTRL &= ~CLKP_IDLE_H;      //SCLK空閑時(shí)為低電平
    SPI1_CNTRL |= TX_NEG_F;       //SDO 信號(hào)在SPICLK的下降沿改變
    SPI1_CNTRL &= ~RX_NEG_F;       //SDI 信號(hào)在SPICLK上升沿鎖存

    CLKDIV &= 0xFFFFFFF0;               //HCLK_N = 0, Pclk = SYSclk/(HCLK_N+1)
    SPI1_DIVIDER &= 0xFFFF0000;         //SPIclk = Pclk/((HCLK_N+1)*2)
    SPI1_DIVIDER |= 0x00000002;
    SET_SPI1_SLAVE_MODE;          //SPI1工作在從機(jī)模式
   
    ENABLE_SPI1_INTERRUPT;        //使能SPI1中斷
    NVIC_ISER |= SPI1_INT;       
    Spi1Length(8);         //設(shè)置SPI1數(shù)據(jù)長(zhǎng)度
    SPI1_GO_BUSY;                 //等待SPI1 RX0接收信號(hào)
}  
/****************************************
*函數(shù)名稱:Spi1Length
*輸    入:ucLength 數(shù)據(jù)長(zhǎng)度
*輸    出:無(wú)
*功    能:設(shè)置SPI1數(shù)據(jù)長(zhǎng)度
******************************************/
VOID Spi1Length(UINT8 ucLength)
{
     if(ucLength <= 0x20)
    {
        if((ucLength & 0x01) == 0)
            SPI1_CNTRL &= ~(1<<3);
        else
            SPI1_CNTRL |= (1<<3);
        if((ucLength & 0x02) == 0)
            SPI1_CNTRL &= ~(1<<4);
        else
            SPI1_CNTRL |= (1<<4);

        if((ucLength & 0x04) == 0)
            SPI1_CNTRL &= ~(1<<5);
        else
            SPI1_CNTRL |= (1<<5);

        if((ucLength & 0x08) == 0)
            SPI1_CNTRL &= ~(1<<6);
        else
            SPI1_CNTRL |= (1<<6);

        if((ucLength & 0x10) == 0)
            SPI1_CNTRL &= ~(1<<7);
        else
            SPI1_CNTRL |= (1<<7);
    }
}
/****************************************
*函數(shù)名稱:PrintGetData
*輸    入:無(wú)
*輸    出:無(wú)
*功    能:打印SPI0/1接收到的數(shù)據(jù)
******************************************/
VOID PrintGetData(VOID)
{
    DEBUGMSG("Slave Get Command = %X\n", g_unSpi1Rx0Data);
    DEBUGMSG("Master Get Feed Back Data = %X\n", g_unSpi0Rx0Data);
}
/*****************************************
*函數(shù)名稱:SPI1_IRQHandler
*輸    入:無(wú)
*輸    出:無(wú)
*功    能:SPI1中斷服務(wù)函數(shù)
******************************************/
VOID SPI1_IRQHandler(VOID)
{
    SPI1_CNTRL |= SPI_IF;       //清除中斷標(biāo)志
    if(SPI1_RX0 == 0x55)
    {
        g_unSpi1Rx0Data = SPI1_RX0;
        SPI1_TX0 = 0x000000DA;
    }
    else
        SPI1_TX0 = 0x00000000;
    SPI1_GO_BUSY;                //等待SPI1 RX0接收信號(hào)
}
/****************************************
*函數(shù)名稱:main
*輸    入:無(wú)
*輸    出:無(wú)
*功    能:函數(shù)主體
******************************************/
INT32 main(VOID)
{
    PROTECT_REG                //ISP下載時(shí)保護(hù)FLASH存儲(chǔ)器
 (
   PWRCON |= XTL12M_EN;      //默認(rèn)時(shí)鐘源為外部晶振
   while((CLKSTATUS & XTL12M_STB) == 0);   //等待12MHz時(shí)鐘穩(wěn)定  
      CLKSEL0 = (CLKSEL0 & (~HCLK)) | HCLK_12M; //設(shè)置外部晶振為系統(tǒng)時(shí)鐘 
 ) 
 UartInit(12000000,9600);      //波特率設(shè)置為9600bps 
    Spi0MasterInit();        //SPI0初始化為主機(jī)模式
    Spi1SlaveInit();        //SPI1初始化為從機(jī)模式   
    while(1)
    {
        DEBUGMSG("Master will send 0x55 data to slave and receive 0xDA data\r\n");
        DEBUGMSG("Put AnyKey to Start Test\r\n");
        GetSlaveID();
        PrintGetData();
        printf("\r\n\r\n"); 
  Delayms(1000);
    }
}

關(guān)閉窗口
888久久久| 91久久国产精品| 91精品欧美久久久久久动漫| 亚洲综合色视频| 亚洲色图在线播放| 久久久99精品免费观看| 国产乱码精品一区二区三 | 亚洲一本视频| 99久久99久久精品国产片桃花 | 欧美成年人视频| 夜夜嗨av一区二区三区免费区 | 国产伦精品一区二区三区免.费| 国产探花在线免费观看| 粉嫩精品久久99综合一区| 国产高清一区二区三区四区| 和岳每晚弄的高潮嗷嗷叫视频| 亚洲欧美丝袜| 四虎免费在线观看视频| 自拍偷拍视频在线| 国产成人一二三区| jizzjizz国产精品喷水| 18禁免费观看网站| 国产精品涩涩涩视频网站| 我看黄色一级片| 宅男一区二区三区| 国产精品中文字幕在线观看| 日韩免费观看av| 国产精品国产三级国产aⅴ9色| 日本高清视频精品| 91欧美精品成人综合在线观看| 91精品国自产在线观看| 精品久久sese| 成人国产精品日本在线| 91欧美日韩一区| 久久96国产精品久久99软件| 性欧美大战久久久久久久免费观看| 中文字幕成人一区| 精品国产免费av| 91视频福利网| 人妻少妇精品视频一区二区三区| 丁香激情五月少妇| 国产无套粉嫩白浆内谢| 免费看黄色的视频| 久久黄色小视频| 亚洲综合成人av| 色婷婷视频在线| 精品久久在线观看| 欧美性受xxxx免费视频| 久久久久久91精品色婷婷| 美女被羞羞网站| 97香蕉久久| 99reav在线| 嗯~啊~轻一点视频日本在线观看| 视频在线日韩| 久久动漫网址| 影音先锋久久| 国产91精品精华液一区二区三区| 国产精品久久久99| 久久青草欧美一区二区三区| 亚洲精品菠萝久久久久久久| 欧美日韩三级一区| 一个人www欧美| 日本成人免费在线| 六十路精品视频| 国产肥臀一区二区福利视频| 日本50路肥熟bbw| 欧美黑人性猛交xxx| 亚洲综合视频在线播放| 欧美xxxxx18| 日本一二区视频| 男人午夜天堂| h片在线免费观看| 性欧美video另类hd尤物| 欧美一区二区三区高清视频| 日本欧美加勒比视频| 国产精品区一区二区三| 国产精品视频一二| 欧美性极品少妇| 一区二区三区动漫| 91久久中文字幕| 免费人成自慰网站| 日本免费不卡一区二区| 麻豆精品免费视频| 在线观看免费观看在线| 99综合精品久久| 日本人妖在线| 国产精品久久久久久福利| 欧美aaaaaa| 激情久久久久| 国产日韩欧美在线一区| 51久久夜色精品国产麻豆| 欧美精品做受xxx性少妇| 国产偷久久久精品专区| 久久精品99国产| 欧美在线a视频| 在线免费播放av| 乱老熟女一区二区三区| 国产男女猛烈无遮挡| 狠狠色噜噜狠狠| а√中文在线8| 久久av导航| 粉嫩aⅴ一区二区三区四区| 色婷婷精品久久二区二区蜜臀av| 久久亚洲欧美日韩精品专区| 麻豆久久久av免费| 原创真实夫妻啪啪av| 亚洲不卡在线视频| 公交车上扒开嫩j挺进去| gogo高清午夜人体在线| 五月开心六月丁香综合色啪 | 污污视频网站| 手机av免费在线| 日韩欧美一区免费| 久久精品视频免费观看| 亚洲国产婷婷香蕉久久久久久| 国产精品欧美激情| 看高清中日韩色视频| 国产亚洲精品成人a| 国产精品嫩草影院精东| 国产精品午夜久久久久久| 视频在线日韩| 日本欧美在线看| 色视频一区二区| 91产国在线观看动作片喷水| 久久久久高清| 国产人妻人伦精品1国产丝袜| 精品人妻一区二区三区四区不卡| 写真福利片hd在线观看| 久久日韩视频| 天天综合网91| 亚洲免费av网站| 日韩精品中文字幕在线不卡尤物| 国产精品一区二区久久| 污版视频在线观看| ,亚洲人成毛片在线播放| 欧美亚洲另类在线观看| 二区三区四区高清视频在线观看| 久久久久久久久久久9不雅视频| 国产色爱av资源综合区| 日日骚久久av| 国产精品igao激情视频| 日本一区二区不卡在线| 天天操天天碰| 2021年精品国产福利在线| 国产乱一区二区| 日韩av在线天堂网| 欧美一区视久久| 手机av在线看| 2023av视频| 午夜视频在线观看精品中文| 久久综合色综合88| 久久视频精品在线| 国产素人在线观看| 伊人影院中文字幕| 日产乱码一卡二卡三免费| 女人让男人操自己视频在线观看| 噜噜噜躁狠狠躁狠狠精品视频| 91久久精品国产91性色tv| 国产剧情日韩欧美| 亚洲久久久久久| 国产精品免费视频一区一| 桃子视频成人app| 国产91精品精华液一区二区三区| 亚洲精品视频免费在线观看| 天天干天天色天天爽| 成人另类视频| 国产一区高清| www亚洲色图| 狠狠色噜噜狠狠狠888奇米| 美日韩在线观看| 欧美性生交大片免费| 在线播放日韩av| 国产欧美亚洲日本| 8x8x成人免费视频| 亚洲s码欧洲m码国产av| 夜夜躁狠狠躁日日躁婷婷小说| 一道精品视频一区二区三区图片| 国产三级av在线| 日日夜夜精品| 久久久久.com| 欧美小视频在线| 久久久久久久久亚洲| 国产香蕉一区二区三区| 美女网站色免费| 欧美三级午夜理伦| 三年片大全在线观看大全有哪些| 日韩欧美一起| 精品91在线| 亚洲第一搞黄网站| 欧美寡妇偷汉性猛交| 国产 国语对白 露脸| 久久激情免费视频| 黑人性受xxxx黑人xyx性爽| 不卡一本毛片| 亚洲三级网站| 日韩欧美在线字幕| 国产精品扒开腿做爽爽爽男男| 久久人妻精品白浆国产| 美女爆乳18禁www久久久久久| 五月婷婷六月激情| 精品视频在线一区二区| 欧美久久99| 日韩欧美主播在线| 成人在线播放av| 波多野结衣先锋影音| 欧美行性性性o00x| 影视一区二区三区| 丰满少妇久久久久久久| 国产亚洲一级高清| 中文字幕日韩精品无码内射| 亚洲综合图片网| 尤物免费看在线视频| 国产综合色激情| 国产高清精品在线| 亚洲美女福利视频网站| 欧美a级黄色大片| 欧美brazzers| 第九色区av在线| 国产精品腿扒开做爽爽爽挤奶网站| 久久精品人人爽人人爽| www.亚洲一区| 老司机午夜av| 午夜在线视频观看| 欧美成人a交片免费看| 国产激情偷乱视频一区二区三区| 一区二区三区四区精品| 黄色一级片播放| 精品人妻一区二区三区三区四区| av免费在线观看网址| 久久亚洲欧美| 亚洲va欧美va国产va天堂影院| 97福利一区二区| 神马午夜伦理影院| 久久久久久不卡| 偷拍自拍在线| 91久久精品无嫩草影院| 日本v片在线高清不卡在线观看| 欧美人与禽zozo性伦| 97伦理在线四区| 欧美又粗又大又长| 成人18网站| 免费黄色成人| 欧美网站在线观看| 99r国产精品视频| 久久av综合网| 国产强被迫伦姧在线观看无码| 日本成人一区| 中文字幕一区二区三区欧美日韩 | 黄色网zhan| 亚洲精品国产精品乱码| 黄色在线播放| 亚洲少妇诱惑| 日韩免费视频一区| 欧美日韩亚洲免费| 精品无码一区二区三区电影桃花| 日本fc2在线观看| 午夜精品一区二区三区国产| 日韩西西人体444www| 亚洲不卡中文字幕| 国产一级片av| 肉丝一区二区| 九一九一国产精品| 日韩在线免费高清视频| 日本久久久久久久久久久久| 成人精品一区二区不卡视频| 亚洲不卡在线| 亚洲精品日韩综合观看成人91| 国产精品国产一区二区| 久久久久久久福利| 蜜桃成人在线视频| 亚洲伊人春色| 7777女厕盗摄久久久| 亚洲午夜激情| 亚洲一区中文字幕在线| 成人免费一区| 中文字幕一区二区三区精华液| 国产精品白丝jk喷水视频一区 | 欧美日韩成人在线播放| 九色自拍视频在线观看| 亚洲欧美另类日韩| 久久av影院| 一本久道中文字幕精品亚洲嫩| 久久综合中文色婷婷| 无码无套少妇毛多18pxxxx| 视频在线观看你懂的| 国内精品视频一区二区三区八戒| www.亚洲免费视频| 亚洲视频 中文字幕| 青青草社区视频| 午夜小视频在线| 激情久久五月天| 欧美精品久久久久久久久| 91精品国产闺蜜国产在线闺蜜| 日韩大胆人体| 国产一区二区看久久| 成人激情av在线| 久久久国产高清| 国产伦子伦对白在线播放观看| 亚洲成a人v欧美综合天堂下载| 日韩和欧美的一区二区| 精品国自产拍在线观看| 国产精品久久久久久久久久辛辛| 欧美性猛交xxxx黑人交| 波多野结衣乳巨码无在线| 激情欧美成人久久综合小说| 97品白浆高清久久久久久| 日本韩国精品在线| 久久久久久av无码免费网站下载| 糖心vlog免费在线观看| av漫画网站在线观看| 亚洲欧美欧美一区二区三区| 91精品久久久久久久久久久久久久| 亚洲高清在线看| 久久精品97| 亚洲成人精品在线观看| 久久精品视频91| 成人网18入口| 亚洲日产国产精品| 国产欧美精品日韩| 欧美精品一二三四区| 成人在线观看亚洲| 亚洲国产日韩a在线播放性色| 一本久久a久久精品vr综合| 亚洲av少妇一区二区在线观看| 青青草国产成人a∨下载安卓| 亚洲天堂免费观看| 国产全是老熟女太爽了| 国产一二三在线| 欧美日韩国产精品一区| 日韩少妇内射免费播放| 一级毛片在线| 国产日韩精品一区二区浪潮av | www.欧美色| 国产一区一区| 欧美一区二区三区色| 久久精品一区二区免费播放| 77777影视视频在线观看| 亚洲国产高清不卡| 黄色免费福利视频| av网站观看| 福利一区在线观看| 懂色av粉嫩av蜜臀av| 免费一级片网址| 日韩和欧美一区二区| 精品无人乱码一区二区三区的优势| 免费观看黄色一级视频| 午夜影院欧美| 性欧美xxxx交| 中文字幕第2页| 日韩国产福利| 亚洲黄色免费电影| 苍井空浴缸大战猛男120分钟| 国产永久在线观看| 五月综合久久| 欧美在线视频不卡| 国内av免费观看| 欧美人与性动交α欧美精品济南到| 欧美日韩在线影院| 亚洲免费黄色录像| 成年网站在线视频网站| 欧美日韩激情美女| 少妇愉情理伦片bd| 3d欧美精品动漫xxxx无尽| 日韩精品一区二区三区在线| www.日本高清视频| av免费在线一区| 91精品国产麻豆| 熟女少妇一区二区三区| 四虎国产精品永久在线国在线| 亚洲精品动漫100p| 欧美日韩在线视频免费| 国产精品白浆| 91精品国产全国免费观看| 中文字幕av网址| 成人免费91| 色妞久久福利网| 这里只有精品9| 亚洲国产老妈| 国产精品国产福利国产秒拍| 九九99精品| 极品少妇xxxx精品少妇| 精品无码久久久久久久动漫| 久草福利资源站| 中文字幕一区二区三中文字幕| 国产精品一区二区羞羞答答| 麻豆视频在线观看免费| 日韩欧美精品中文字幕| 欧美a在线播放| caoporn成人免费视频在线| 久久精品国亚洲| 日本免费不卡视频| 久久综合婷婷| 欧美日本韩国国产| 超清福利视频| 综合久久一区二区三区| 91视频免费入口| 亚洲第一二三四区| 最新69国产成人精品视频免费| 国产日韩在线观看一区| 日韩精品乱码免费|