|
你好! 我是一个初次使用ADXL345模块的新手,在用psoc对其采用IIC通信时发生了读取数值的问题。 具体情况如下: 当我设置成±16g时, 每个轴的回馈都是 0x0FFE(已拼接) 当我设置成±4g时,每个轴的回馈都是 0x03FF(已拼接) 当我设置成±2g时,每个轴的回馈都是 0x01FF(已拼接) 由于我选择的是全精度模式,可见每个轴都返回给我一个负值,并且这个值不论我怎么移动我的主板,不会变化(也即重力加速度探测没有体现),现在我不知道我的问题在哪里。 对于这个芯片,在读了datasheet之后,我做了以下的初始化: 1.设置全精度模式,±4g范围,数据右对齐 2.数据output rate为100hz(我的psoc数据传输频率也为100hz) 3.FIFO mode为stream,level设为了26个字节 4.Power Control设置了ADXL345进入measurement模式 在实际读取的时候我用的是burst read模式,一口气读6个byte,分配到userdata这个int16 的数组当中。 我读芯片的ID是能看到0xE5的。 关于外设: 两个4.7k电阻上拉了SDA以及SCL线路。SDO拉低(选择地址0x53)。CS拉高(选择IIC模式)。程序运行全过程这个外设不变。 综上所述是问题的概况,我现在不知道问题是软件还是硬件,如果必要的话我可以发代码上来或者拍摄硬件连接图上来,请工程师帮忙看看,谢谢! |
|