打印

CC1100E连续读写寄存器出错

[复制链接]
1992|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
contiki|  楼主 | 2012-10-7 17:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,小弟初来乍到,
基于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”才可以啊?

[img][/img]

使用特权

评论回复
板凳
contiki|  楼主 | 2012-11-19 19:18 | 只看该作者
连续读取原来是模块坏了,郁闷

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

10

帖子

0

粉丝