标题: MCU SPI通讯程序问题,返回状态是什么值,望指教? [打印本页]

作者: zcwjzwd    时间: 2021-1-29 22:27
标题: MCU SPI通讯程序问题,返回状态是什么值,望指教?
SPI在发送一个字节的同时会接收一个字节,Reg为寄存器地址,status为接收到的返回状态,这个返回状态是返回的什么值呢?

//参考官方文档
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
}





作者: 人人学会单片机    时间: 2021-1-30 10:23
具体的 你可以看看 人人学会单片机视频教程的 无线模块章节,在原子哥罔可以观看
作者: munuc_w    时间: 2021-1-30 10:37
按如下调整后应该是正确的,大家意见如何?
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.51hei.com/bbs/) Powered by Discuz! X3.1