我正在尝试通过 I2C 从 PIC 设备与 Raspberry pi 3B+ 进行通信。
我的 PIC 设备是PIC16F18325
.
首先,我使用 MCC(mplab 代码配置)生成了 i2c 库。树莓派设置为主机,图片设备设置为从机。
问题
我想将数据从slave传递给master,但我不知道如何使用生成的库。
我应该如何在 main.c 中使用 i2c1_slave.h 库?
我的代码在这里。
I2C 是一种双向总线,至少有一个主机和一个从机。您在 Raspberry Pi 上的程序应该提供 I2C 主机功能,而 PIC 从机功能上的程序。I2C 主机始终启动数据交换。
为了与从机交换数据,主机发送一个包含从机地址的字节,以及它是要发送更多字节还是等待接收。当从机接收到该字节时,它应该通过发送或接收做出相应的响应。
只有当主机 (RPi) 在包含从机地址的 I2C 启动条件之后将一个字节放入总线时,才会在从机 (PIC) 上触发中断。
中断服务程序必须处理接收到的字节并为下一个字节做准备。读/写位决定响应和下一个动作,以及为下一个中断做准备的内务处理。从站执行的确切步骤必须与主站期望的相匹配,反之亦然。