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

2019-07-25 14:42发布

//函数名: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++; 这个语句?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
聂志钧
1楼-- · 2019-07-25 16:33
我看到书上说“写入寄存器时,每当一个报头字节或数据字节通过 SI 引脚发 送时状态字节便会通过 SO 引脚完成发送。当读取寄存器时,每当一个报头字 节通过 SI 引脚发送时状态字节便会通过 SO 引脚完成发送”   是为了检测这个吗?
sunmeat
2楼-- · 2019-07-25 19:51
P3IN & BIT3,知道BIT3代表的是什么意思,就清楚了
旧影子
3楼-- · 2019-07-25 23:46
应该是一个检测发送的标志寄存器位。
米尔豪斯
4楼-- · 2019-07-26 04:51
关于MISO程序里是怎么定义的
尤彼卡
5楼-- · 2019-07-26 07:36
 精彩回答 2  元偷偷看……
STM32初学者
6楼-- · 2019-07-26 12:44
尤彼卡 发表于 2015-10-29 19:57
(P3IN & BIT3)==BIT3这个就是检测第3位上是0还是1的

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

一周热门 更多>