新人求教ADXL345程序问题~求帮助~
现在在研究ADXL345加速度传感器使用的是avr atmega128单片机
现在尝试读取ADXL345中的数据,但死活读不出来。
使用的是spi四线通讯
根据ADXL345的时序图,读取数据的时候SCLK必须一直在保持震荡,可是avr的单片机当spi的数据发送完了以后,sck就停止震荡了,这可怎么办?
有没有高手有用avr的spi通信 控制adxl345的例程给我看看呢,感激不尽~
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,
程序已经可以顺利读出id号了。。。。程序没问题
页:
[1]