找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1104|回复: 2
收起左侧

MCU SPI通讯程序问题,返回状态是什么值,望指教?

[复制链接]
ID:493146 发表于 2021-1-29 22:27 | 显示全部楼层 |阅读模式
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
}




回复

使用道具 举报

ID:390416 发表于 2021-1-30 10:23 | 显示全部楼层
具体的 你可以看看 人人学会单片机视频教程的 无线模块章节,在原子哥罔可以观看
回复

使用道具 举报

ID:752974 发表于 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
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表