首先看I2C 写入的波形图:
这里我们要驱动的设备是 NXP 的 PCF8563 RTC 芯片。可以看到芯片的驱动逻辑如下:
- 首先发送7位的地址 + 一位的读写位
- 发送8 位的寄存器地址
- 发送 8 位数据
- 根据数据的数量重复第三步
- 发送停止位
PCF 8563 的 I2C 地址位 7'b 1010001,加上 1 位的读写位,那么就是
- 写入 8'b1010_0010
- 读出 8'b1010_0011
根据这些就可以编写完整的 I2C 设备驱动代码了。I2C数据写入函数:
编写测试代码,并用逻辑分析仪测试输出,这是逻辑分析仪的截图:
嗯~ o(* ̄▽ ̄*)o,终于结束了。这样的话代码就好用多了。本篇到这里结束。ヾ(•ω•`)o