版权声明:本人乐于交流欢迎轉载,如果转载的时候能和我说一声那就更加的好! /chengdong1314/article/details/
IIC输出是开漏输出所以在SCL和SDA两个引脚上必须接上上拉电阻
IIC总线需要在发送了地址之后必须发送
模拟发送数据函数如下:
注意上面的注释,很关键
注意开始函数和停止函数的顺序很关键
硬件IIC要求从设备必须有应答能力
如果從设备没有应答能力,也可以说硬件IIC必须要有负载设备那么IIC硬件将会在传输完第一个直接(设备地址)后断开传输:
IIC在多字节的读取的時候必须要正确的给出应答
IIC在多字节的读取也就是主机作为数据的接收端,这时候从设备要判断发送的数据时候正确所以主机在完全接收到一个字节之后必须要给予正确的应答,比如KX022的手册要求的时序如下:
当在接收到一个data(第一个DATA)后如果主机不给应答那么通讯很有可能會出现错误,造成的现象有可能是在接下来的传输里从机一直拉低SDA数据线