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;
}
} 单字节读取寄存器没问题,应该就能证明SPI口没问题吧?
可在实验的时候,发现SPI模式设置为:“CPOL_Low 和 CPHA_1Edge” 或者
“CPOL_High 和 CPHA_2Edge” 都能SPI读写寄存器。
按照CC1101的SPI时序,应该是只有“CPOL_Low 和 CPHA_1Edge”才可以啊?
连续读取原来是模块坏了,郁闷
页:
[1]