找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1120|回复: 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
}




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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 单片机教程网

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