您好,我用的是TMS570LS0332的GPIO模拟IIC时序读取ADS1015的转换结果,在读取一个输入时(如AIN0),结果正确,但是连续读取多个输入时,结果就发生了错误,本来是AIN3引脚的值,却读到了AIN0的变量里,请问这有可能是什么原因造成的?
Ken Wang:
Hi Wei,
我能想到的可能的原因是,我们TMS570是大端存储模式,你在读取ADS1015的数值时,先读取的是MSB,然后再是LSB。读到的数据存储到TMS570的寄存器里是,有可能存储的高低端地址需要注意一下。
另外的话,你可以通过示波器查看一下波形,确定每次Master向slave发送读取regisiter的信息后,slave都会返回一个响应值,这样比较好确定每次的通信都成功。
谢谢
肯