Khepera III 工具箱/工具箱/模組/i2c 流
外觀
i2c_stream 模組實現了一個簡單的 I2C 資料流協議。資料流的來源裝置也必須實現相同的協議。
檢視 i2c_stream_read 程式的原始碼以獲取示例。
該模組使用 i2cal 模組將資料塊從外部裝置(晶片)傳輸到程式。它主要由兩個函式組成
- i2c_stream_read_start,用於啟動流
- i2c_stream_read_next,需要經常呼叫(並且以或多或少規律的間隔呼叫)以讀取可用資料塊
以下四個設定需要提供給模組
- 裝置: 要查詢的裝置的 I2C 地址
- 暫存器: 從中讀取流的 I2C 暫存器
- 塊大小: 一個塊的大小(以位元組為單位)
- 最大塊數: 一次傳輸的最大塊數(此值必須 <= 128 / 塊大小)
用於資料流的協議非常簡單:要重置流,模組首先發送暫存器,然後傳送 1。要讀取資料塊,模組傳送暫存器,然後從裝置讀取 (塊大小 + 1) 位元組的倍數。塊的第一個位元組是狀態位元組,它可以取以下值之一
- 255 (I2C_STREAM_BUFFER_OVERRUN): 裝置上發生了緩衝區溢位,即塊讀取速度不夠快。
- 254 (I2C_STREAM_EMPTY): 塊不包含任何資料。
- 0..253: 裝置上可用的塊數