如题,我最近在做tm4c1294对mpr121触摸芯片的读取,但是发现I2CMasterInitExpClk()时钟速率的配置和系统时钟配置不同,会影响读取的效果。标准模式和快速模式读取的值不同,而且标准模式下所有寄存器读取的值都是一样的,不明白原因是什么,求大神指点。问题是出在ti开发板上还是mpr121上呢?
xyz549040622:
1.你加上拉了没有
2.你I2CMasterInitExpClk()的参数是如何配置的
我看了看手册mpr121最大支持400khz的速度,你最好配置为100khz就好了。
标准模式和快速模式读取的值不同,哪个模式下读取的数据是正确的呢?
user4893809:
回复 xyz549040622:
SCL和SDA都加了上拉电阻,I2CMasterInitExpClk()值取得是false是100khz,但是不理解为什么读取到的寄存器的值都是和0x00寄存器相同。
但从示波器抓取的波形来看应该是访问到了相应的寄存器,下图是我读取从机地址0x5a,寄存器0x41的示波器波形。正常读取值应该是0x0f。求指点
xyz549040622:
回复 user4893809:
从波形上看,I2C确实发出去了数据,也收到了数据,从波形看,1,没有你说的0x0F这个数据,2,波形的质量确实有点差,你是用的杜邦线连接的吗?
user4893809:
回复 xyz549040622:
嗯嗯,是用杜邦线连的,有什么可以改善波形质量的办法吗?