3seven 发表于 2011-7-21 10:59:50

关于cc1100 的程序,有一个地方求解释

//*****************************************************************************************
//函数名:void halSpiReadBurstReg(INT8U addr, INT8U *buffer, INT8U count)
//输入:地址,读出数据后暂存的缓冲区,读出配置个数
//输出:无
//功能描述:SPI连续写配置寄存器
//*****************************************************************************************
void halSpiReadBurstReg(INT8U addr, INT8U *buffer, INT8U count)
{
    INT8U i,temp;
temp = addr | READ_BURST; //写入要读的配置寄存器地址和读命令
    CSN = 0;
    while (MISO);
SpiTxRxByte(temp);   
    for (i = 0; i < count; i++)
{
      buffer = SpiTxRxByte(0);
    }
    CSN = 1;
}


这个地方temp = addr | READ_BURST;是什么意思,是不是把连续读的控制信息和地址合起来呢,但是这样地址不就变了吗

orzorzorzorz 发表于 2011-8-5 21:57:43

你应该仔细看看数据手册,burst是连续读取多个寄存器的值

kingheimer 发表于 2011-10-25 13:10:21

因为它的地址头只有低六位代表的是地址,高二位其中第7位代表BURST访问控制,第8位代表写/读寄存器控制,所以说地址是不变的
页: [1]
查看完整版本: 关于cc1100 的程序,有一个地方求解释