I2C 协议由 Philip 公司开发,是一种简单高效的串行通信协议,具体详细内容可参见 I2C 手册,I2C 有两个信号线,SCL 和 SDA。下图为 I2C 的帧格式:
I2C 可以在一次传输中传输多个数据帧,这里以单帧为例,多帧的会在以后的文章中详述。
整个数据帧可以分为以下几个部分:
需要特别注意的是应答位(ACK),在主机发送从机接受的状况下,应答位由从机发送,具体内容因芯片而异。
这里使用单片机来发送一个 I2C 的数据帧 0xB2,代码如下:
编译下载运行,然后逻辑分析仪的显示结果如下:
可以看到,虽然波形占空比一塌糊涂w(?Д?)w的,单片机忠诚的输出了 0xB2 这个参数。I2C 还有连续发送的功能,实现起来也并不困难。下一章节会是 PCF 8563 的部分。
本篇就在这里告一段落了,ヾ(?ω?`)o。
原文:https://www.cnblogs.com/SummerSunnyDay/p/14584356.html