最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

模擬SPI的程序

作者:keise 欄目:單片機
模擬SPI的程序
哪位大蝦幫我看一下這個讀寫SPI的函數(shù)是否正確啊,我在用這個程序讀寫FRAM(FM25L256)的時候一直都不成功,郁悶死了!是否在讀寫之前要選擇一下SPI的工作模式(CPOL,CPHA),如果要的話如何設置啊?還有要不要先設置一下它的狀態(tài)寄存器哪?請各位大俠幫忙!謝謝先!
uchar  SPI0_WriteByte(uchar Data)        //往FRAM中寫入一個字節(jié)
{
    uint i;
    
    SCK=1;
    for(i=0;i<8;i++)
    {
        SCK=0;
        if((Data<<i)&0x80)
            SIO=1;
        else
            SIO=0;
        SCK=1;
    }    
    //SCK=0;
    return 0;
}

uchar  SPI0_ReadByte()        //讀取FRAM中的一個字節(jié)
{
    uint i;
    uchar temp_buffer=0;

    SCK=1;
    for(i=0;i<8;i++)
    {
        SCK=0;
        temp_buffer<<=1;
        if(SIO)
            temp_buffer+=1;
        SCK=1;
    }
    //SCK=0;
    return temp_buffer;
}


uchar FM25L256_Write(uint Addr,uint Length,uchar *Data)        //往FRAM中寫入數(shù)據(jù)
{
    uint i;
    
    CSEnable;
    SPI0_WriteByte(WREN);                     // write enable command    
    CSDisable;
    for(i=0;i<10;i++)  { _nop_(); }
    CSEnable;
    SPI0_WriteByte(WRMD);                        // write MEMORY command
    SPI0_WriteByte(Addr>>8);                   // high 8 bits address
    SPI0_WriteByte((uchar)(0x00ff&Addr));    // low 8 bits address
    for(i=0;i<Length;i++)
    {
        SPI0_WriteByte(*Data);
        Data++;
    }
    CSDisable;
    for(i=0;i<10;i++)  { _nop_(); }
    CSEnable;
    SPI0_WriteByte(WRDI);                     // write disable command
    CSDisable;

    return 0;
}

uchar FM25L256_Read(uint Addr,uint Length,uchar *Data)        //讀FRAM中的信息
{
    uint i;
  
    CSEnable;    
    SPI0_WriteByte(RDMD);                        // read MEMORY command
    SPI0_WriteByte(Addr>>8);                   // high 8 bits address
    SPI0_WriteByte((uchar)(0x00ff&Addr));    // low 8 bits address
    for(i=0;i<Length;i++)
    {
        *Data = SPI0_ReadByte();
        Data++;
    }
    CSDisable;
  
    return 0;
}

2樓: >>參與討論
xzhenggen
讀寫一個字節(jié)函數(shù)有誤,
同時選擇一下SPI的工作模式(CPOL,CPHA),查詢狀態(tài)寄存器的標志

3樓: >>參與討論
keise
模擬SPI的程序
讀寫一個字節(jié)的函數(shù)應該如何修改啊,我把FRAM的SI,SO兩個引腳連在了一起,一起接到單片機的一個引腳上了。工作模式怎么設置啊,狀態(tài)寄存器還用設置嗎?

4樓: >>參與討論
keise
模擬SPI的程序
哪位高人幫我指點一下啊!!

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
555555~我把串口插座的公座和母座搞反了。
請教PWM調(diào)速的問題
VCC程序設計問題
侃侃俺在51上寫的一個簡單的多任務調(diào)度~~~~~~~~
步進電機的額定功率如何計算啊?
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號