162 lines
2.6 KiB
ReStructuredText
162 lines
2.6 KiB
ReStructuredText
I2C
|
||
=============
|
||
|
||
Macros
|
||
------------
|
||
|
||
无
|
||
|
||
Structs
|
||
------------
|
||
|
||
struct bflb_i2c_msg_s
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
|
||
i2c 传输时需要填充的消息。
|
||
|
||
.. code-block:: c
|
||
:linenos:
|
||
|
||
struct bflb_i2c_msg_s {
|
||
uint16_t addr;
|
||
uint16_t flags;
|
||
uint8_t *buffer;
|
||
uint16_t length;
|
||
};
|
||
|
||
.. list-table::
|
||
:widths: 10 10
|
||
:header-rows: 1
|
||
|
||
* - parameter
|
||
- description
|
||
* - addr
|
||
- 设备地址(7 位或者 10 位)
|
||
* - flags
|
||
- 传输时附带标志
|
||
* - buffer
|
||
- 数据区
|
||
* - length
|
||
- 数据长度
|
||
|
||
`flag` 可以为以下参数:
|
||
|
||
.. code-block:: c
|
||
:linenos:
|
||
|
||
#define I2C_M_READ 0x0001
|
||
#define I2C_M_TEN 0x0002
|
||
#define I2C_M_DMA 0x0004
|
||
#define I2C_M_NOSTOP 0x0040
|
||
#define I2C_M_NOSTART 0x0080
|
||
|
||
.. note:: I2C_M_NOSTOP 表示 i2c 设备需要操作寄存器地址
|
||
|
||
Functions
|
||
------------
|
||
|
||
bflb_i2c_init
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
|
||
说明: 初始化 i2c 并配置频率。
|
||
|
||
.. code-block:: c
|
||
:linenos:
|
||
|
||
void bflb_i2c_init(struct bflb_device_s *dev, uint32_t frequency);
|
||
|
||
.. list-table::
|
||
:widths: 10 10
|
||
:header-rows: 1
|
||
|
||
* - parameter
|
||
- description
|
||
* - dev
|
||
- 设备句柄
|
||
* - frequency
|
||
- 配置频率(范围 305 HZ ~ 400KHZ)
|
||
|
||
bflb_i2c_deinit
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
|
||
说明: 反初始化 i2c。
|
||
|
||
.. code-block:: c
|
||
:linenos:
|
||
|
||
void bflb_i2c_deinit(struct bflb_device_s *dev);
|
||
|
||
.. list-table::
|
||
:widths: 10 10
|
||
:header-rows: 1
|
||
|
||
* - parameter
|
||
- description
|
||
* - dev
|
||
- 设备句柄
|
||
|
||
bflb_i2c_link_txdma
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
|
||
说明: i2c 发送 dma 使能开关。
|
||
|
||
.. code-block:: c
|
||
:linenos:
|
||
|
||
void bflb_i2c_link_txdma(struct bflb_device_s *dev, bool enable);
|
||
|
||
.. list-table::
|
||
:widths: 10 10
|
||
:header-rows: 1
|
||
|
||
* - parameter
|
||
- description
|
||
* - dev
|
||
- 设备句柄
|
||
* - enable
|
||
- 是否使能 dma
|
||
|
||
bflb_i2c_link_rxdma
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
|
||
说明: i2c 接收 dma 使能开关。
|
||
|
||
.. code-block:: c
|
||
:linenos:
|
||
|
||
void bflb_i2c_link_rxdma(struct bflb_device_s *dev, bool enable);
|
||
|
||
.. list-table::
|
||
:widths: 10 10
|
||
:header-rows: 1
|
||
|
||
* - parameter
|
||
- description
|
||
* - dev
|
||
- 设备句柄
|
||
* - enable
|
||
- 是否使能 dma
|
||
|
||
bflb_i2c_transfer
|
||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
|
||
说明: i2c 消息传输。
|
||
|
||
.. code-block:: c
|
||
:linenos:
|
||
|
||
int bflb_i2c_transfer(struct bflb_device_s *dev, struct bflb_i2c_msg_s *msgs, int count);
|
||
|
||
.. list-table::
|
||
:widths: 10 10
|
||
:header-rows: 1
|
||
|
||
* - parameter
|
||
- description
|
||
* - dev
|
||
- 设备句柄
|
||
* - msgs
|
||
- 消息指针
|
||
* - count
|
||
- 消息个数
|