contiki 发表于 2012-10-7 17:18

CC1100E连续读写寄存器出错

大家好,小弟初来乍到,
基于STM32下做CC1100E和CC1101的驱动,根据在MSP430下的例程移植到STM32下。
小弟现在用STM32的SPI口单字节写寄存器没问题;可是一到突发模式连续读取就出现问题,连续burst写进寄存器的数,用单字节read出来都是0xF。

希望各位大侠能帮帮小弟,感激不尽!!

以下是单字节和连续写寄存器的函数:
void CC1100E_WriteReg(uint8_t addr, uint8_t value)
{
    SPI_CS_ON;
    while(SPI_MISO);      // Wait for SO pin goes low
    SPISendByte(addr);
    SPISendByte(value);
    SPI_CS_OFF;
}
void CC1100E_WriteBurstReg(uint8_t addr, uint8_t *buffer, uint8_t count)
{
uint8_t i=0;
    SPI_CS_ON;
    while(SPI_MISO);      // Wait for SO pin goes low
    SPISendByte(addr|WRITE_BURST);
    for (i = 0; i < count; i++)
    {
      SPISendByte( buffer );
    }
    SPI_CS_OFF;
}
}

contiki 发表于 2012-10-7 17:27

单字节读取寄存器没问题,应该就能证明SPI口没问题吧?

可在实验的时候,发现SPI模式设置为:“CPOL_Low 和 CPHA_1Edge” 或者
“CPOL_High 和 CPHA_2Edge” 都能SPI读写寄存器。
按照CC1101的SPI时序,应该是只有“CPOL_Low 和 CPHA_1Edge”才可以啊?

contiki 发表于 2012-11-19 19:18

连续读取原来是模块坏了,郁闷
页: [1]
查看完整版本: CC1100E连续读写寄存器出错