求解答一个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条回答
聂志钧
2019-07-25 16:33
我看到书上说“写入寄存器时,每当一个报头字节或数据字节通过 SI 引脚发 送时状态字节便会通过 SO 引脚完成发送。当读取寄存器时,每当一个报头字 节通过 SI 引脚发送时状态字节便会通过 SO 引脚完成发送”   是为了检测这个吗?

一周热门 更多>