標(biāo)題: MCU SPI通訊程序問題,返回狀態(tài)是什么值,望指教? [打印本頁]

作者: zcwjzwd    時間: 2021-1-29 22:27
標(biāo)題: MCU SPI通訊程序問題,返回狀態(tài)是什么值,望指教?
SPI在發(fā)送一個字節(jié)的同時會接收一個字節(jié),Reg為寄存器地址,status為接收到的返回狀態(tài),這個返回狀態(tài)是返回的什么值呢?

//參考官方文檔
uint SPI_RW(uint byte)
{
        uchar i;
           for(i=0;i<8;i++) // output 8-bit
           {
                if(byte&0x80)
                MOSI=1;
                else
                MOSI=0;
                byte<<=1;
                SCK=1;
                if(MISO)
                byte|=0x01;
                SCK=0;
                         // ..then set SCK low again
           }
    return byte;                             // return read uchar
}
//參考官方文檔
uint SPI_W_Reg(uchar reg, uchar value)
{
        uint status;
        
        CSN = 0;                   // CSN low, init SPI transaction
        status = SPI_RW(reg);      // select register
        SPI_RW(value);             // ..and write value to it..
        CSN = 1;                   // CSN high again
        
        return(status);            // return nRF24L01 status uchar
}





作者: 人人學(xué)會單片機    時間: 2021-1-30 10:23
具體的 你可以看看 人人學(xué)會單片機視頻教程的 無線模塊章節(jié),在原子哥罔可以觀看
作者: munuc_w    時間: 2021-1-30 10:37
按如下調(diào)整后應(yīng)該是正確的,大家意見如何?
uint SPI_W_Reg(uchar reg, uchar value)
{
        uint status;
        
        CSN = 0;                   // CSN low, init SPI transaction
        SPI_RW(reg);      // select register
        status = SPI_RW(value);             // ..and write value to it..
        CSN = 1;                   // CSN high again
        
        return(status);            // return nRF24L01 status uchar
}




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1