打印

求解答一个CC1101的写字节程序

[复制链接]
777|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
聂志钧|  楼主 | 2015-10-26 22:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//函数名:SpisendByte(INT8U dat)
//输入:发送的数据
//输出:无
//功能描述:SPI发送一个字节
//*****************************************************************************************

INT8U SpiTxRxByte(INT8U dat)
{
        INT8U i,temp;
        temp = 0;
       
        SCK0;//SCK = 0
        for(i=0; i<8; i++)
        {
                if(dat & 0x80)
                {
                     MOSI1;//MOSI = 1
                }
                else MOSI0;//MOSI = 0
                dat <<= 1;
      
                SCK1; //SCK = 1
                yanshi(1);

                temp <<= 1;
                MISO;
                if((P3IN & BIT3)==BIT3/*MISO*/)temp++;
                SCK0;//SCK = 0
                yanshi(1);
        }
        return temp;
}


这个程序里的temp起一个什么作用呢?还有就是为什么每次发送完一位以后要有  MISO;
                if((P3IN & BIT3)==BIT3/*MISO*/)temp++; 这个语句?

相关帖子

沙发
聂志钧|  楼主 | 2015-10-26 22:25 | 只看该作者
我看到书上说“写入寄存器时,每当一个报头字节或数据字节通过 SI 引脚发 送时状态字节便会通过 SO 引脚完成发送。当读取寄存器时,每当一个报头字 节通过 SI 引脚发送时状态字节便会通过 SO 引脚完成发送”   是为了检测这个吗?

使用特权

评论回复
板凳
sunmeat| | 2015-10-28 17:07 | 只看该作者
P3IN & BIT3,知道BIT3代表的是什么意思,就清楚了

使用特权

评论回复
地板
旧影子| | 2015-10-29 16:57 | 只看该作者
应该是一个检测发送的标志寄存器位。

使用特权

评论回复
5
米尔豪斯| | 2015-10-29 19:34 | 只看该作者
关于MISO程序里是怎么定义的

使用特权

评论回复
6
尤彼卡| | 2015-10-29 19:57 | 只看该作者
(P3IN & BIT3)==BIT3这个就是检测第3位上是0还是1的

使用特权

评论回复
7
STM32初学者| | 2015-10-30 22:51 | 只看该作者
尤彼卡 发表于 2015-10-29 19:57
(P3IN & BIT3)==BIT3这个就是检测第3位上是0还是1的

这个第三位是代表的什么意思呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

7

帖子

1

粉丝