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

[复制链接]
1128|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 | 显示全部楼层
应该是一个检测发送的标志寄存器位。
米尔豪斯 发表于 2015-10-29 19:34 | 显示全部楼层
关于MISO程序里是怎么定义的
尤彼卡 发表于 2015-10-29 19:57 | 显示全部楼层
(P3IN & BIT3)==BIT3这个就是检测第3位上是0还是1的
STM32初学者 发表于 2015-10-30 22:51 | 显示全部楼层
尤彼卡 发表于 2015-10-29 19:57
(P3IN & BIT3)==BIT3这个就是检测第3位上是0还是1的

这个第三位是代表的什么意思呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

7

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部