主器件选I2CCHW,从器件选EzI2Cs,速率设为100k,通讯很流畅,主器件换成其他公司的I2C器件后,发现找不到I2C从器件,两个原因造成的冲突:1,地址:EzI2Cs的地址如果为4,PSOC系列的主器件直接寻4的地址就能找到(API自动转换为8位寻址),但其他公司的可就没这功能,所以地址得写0x08;2,速率:主I2C不是PSoC芯片,如果要以100k的速度通讯,最好将EzI2Cs的速率设为400k,因为PSOC内部时钟的精度不高,选100K时未必能达到100k,这样跟其他标准时钟的I2C通讯时很可能落后半拍,以至于无法获得握手信息,换成400K就没问题了!自己试验总结出的,不知理解是否正确,反正能使用了,希望对大家使用I2C能有用 |