lyreliu 发表于 2012-11-24 10:51:43

新人求教ADXL345程序问题~求帮助~

现在在研究ADXL345加速度传感器
使用的是avr atmega128单片机

现在尝试读取ADXL345中的数据,但死活读不出来。
使用的是spi四线通讯

根据ADXL345的时序图,读取数据的时候SCLK必须一直在保持震荡,可是avr的单片机当spi的数据发送完了以后,sck就停止震荡了,这可怎么办?
有没有高手有用avr的spi通信 控制adxl345的例程给我看看呢,感激不尽~

lyreliu 发表于 2012-11-24 10:59:33

void ADXL345_Read_test()                               
{
        PORTB |= (0<<CS);                                   //拉低CS线                       
       
        SPDR = 0x80;                           //0x80=10000000,我想读取地址为0x00的寄存器的内容,即元件id                       
        while(!(SPSR & (1<<SPIF)));                   //有一个问题,这里发送完了以后,sck线就停止震荡了,所以下面把SPDR置0让sck线继续震荡,这是
                                                                   //看到其他朋友的程序写的
        SPDR=0;
                while(!(SPSR&0x80));       
        DATA = SPDR;                                     //把读取到的东西放到DATA变量里面

        PORTB |= (1<<CS);                                  //重新拉高CS
}

写了这么一个简单的函数想读取元件id,用串口把数据发出去,得到的全部是0x00,

lyreliu 发表于 2012-11-26 18:18:08

程序已经可以顺利读出id号了。。。。程序没问题
页: [1]
查看完整版本: 新人求教ADXL345程序问题~求帮助~