求助,使用的芯片型号为H3LIS200DLTR,供电3.3V,采用I2C接口,目前SA0通过4.7K电阻接地,CS通过4.7K的作用上拉到3.3V,VDD与VDD_IO都接到了3.3V。其中有2个管脚,分别是10与15,都是Reserved,要求是Pin10接到GND,Pin15接VDD。目前发现原理图上,Pin10没有接,是NC状态。然后程序是基于正点原子的模拟I2C方式,但读取芯片的ID或者X轴数据,都一直是0,想问下是Pn10的原因吗?或者ST官方有没有参考的例程啊?
后来程序改用安富莱的例程,发现可以读取,开始以为是正点原子的程序不好导致,继续排查,原子的是读取单个字节,安富莱的是读取指定字节数,将这个读取长度改为1,就类似于读取单个字节,能够正确读取ID。如下:

但是,不要这个读取字节的参数,就只读一个字节,将for循环与应答去掉,如下:

就会发现,也无法读取ID了,所以,这就是芯片自身的问题了,因为读取EEPROM与温度传感器都试了,无论哪个情况,都可以正确读取的。