xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
载入中...
搜索中...
未找到
xt_hal_i2c(I2C 驱动)

XTINY HAL I2C 模块接口 更多...

宏定义

#define XT_HAL_I2C_INVALID_ID   (0xFF)

类型定义

typedef void(* xt_hal_i2c_cb_t) (uint8_t i2c_id, uint32_t event_id)
 I2C 回调函数类型定义

枚举

enum  xt_hal_i2c_event_id { XT_HAL_I2C_EVENT_DONE = 0x00 }
 I2C 事件 ID 枚举 更多...

函数

xt_err_t xt_hal_i2cm_setup (uint8_t i2c_id, uint32_t speed, uint8_t scl_pin, uint8_t sda_pin)
 初始化 I2C Master
xt_err_t xt_hal_i2cm_close (uint8_t i2c_id)
 关闭 I2C Master
int32_t xt_hal_i2cm_tx_block (uint8_t i2c_id, uint16_t slave_addr, const void *tx_buffer, size_t size)
 阻塞发送数据到指定从机
int32_t xt_hal_i2cm_rx_block (uint8_t i2c_id, uint16_t slave_addr, void *rx_buffer, size_t size)
 阻塞从指定从机读取数据
int32_t xt_hal_i2cm_tx_rx_block (uint8_t i2c_id, uint16_t slave_addr, const void *tx_buffer, size_t tx_size, void *rx_buffer, size_t rx_size)
 阻塞半双工传输(先写后读)

详细描述

XTINY HAL I2C 模块接口

宏定义说明

◆ XT_HAL_I2C_INVALID_ID

#define XT_HAL_I2C_INVALID_ID   (0xFF)

在文件 xt_hal_i2c.h 第 33 行定义.

类型定义说明

◆ xt_hal_i2c_cb_t

typedef void(* xt_hal_i2c_cb_t) (uint8_t i2c_id, uint32_t event_id)

I2C 回调函数类型定义

参数
i2c_idI2C 索引
event_id事件 ID,见 xt_hal_i2c_event_id

在文件 xt_hal_i2c.h 第 50 行定义.

枚举类型说明

◆ xt_hal_i2c_event_id

I2C 事件 ID 枚举

枚举值
XT_HAL_I2C_EVENT_DONE 

I2C 传输完成

在文件 xt_hal_i2c.h 第 40 行定义.

函数说明

◆ xt_hal_i2cm_close()

xt_err_t xt_hal_i2cm_close ( uint8_t i2c_id)

关闭 I2C Master

参数
i2c_idI2C 索引
返回
xt_err_t XT_EOK 成功,其他失败

◆ xt_hal_i2cm_rx_block()

int32_t xt_hal_i2cm_rx_block ( uint8_t i2c_id,
uint16_t slave_addr,
void * rx_buffer,
size_t size )

阻塞从指定从机读取数据

接收完毕后发送停止信号。slave_addr 为 7 位地址。

参数
i2c_idI2C 索引
slave_addr从机 7 位地址
rx_buffer接收数据缓冲区
size接收数据长度(字节)
返回
int32_t 实际接收字节数,负数为错误码

◆ xt_hal_i2cm_setup()

xt_err_t xt_hal_i2cm_setup ( uint8_t i2c_id,
uint32_t speed,
uint8_t scl_pin,
uint8_t sda_pin )

初始化 I2C Master

参数
i2c_idI2C 索引
speed时钟速率(单位:Hz)
scl_pinSCL 引脚编号
sda_pinSDA 引脚编号
返回
xt_err_t XT_EOK 成功,其他失败

◆ xt_hal_i2cm_tx_block()

int32_t xt_hal_i2cm_tx_block ( uint8_t i2c_id,
uint16_t slave_addr,
const void * tx_buffer,
size_t size )

阻塞发送数据到指定从机

输出完毕后发送停止信号。slave_addr 为 7 位地址。

参数
i2c_idI2C 索引
slave_addr从机 7 位地址
tx_buffer发送数据缓冲区
size发送数据长度(字节)
返回
int32_t 实际发送字节数,负数为错误码

◆ xt_hal_i2cm_tx_rx_block()

int32_t xt_hal_i2cm_tx_rx_block ( uint8_t i2c_id,
uint16_t slave_addr,
const void * tx_buffer,
size_t tx_size,
void * rx_buffer,
size_t rx_size )

阻塞半双工传输(先写后读)

先向指定从机写数据,写完后不发送停止信号,之后读数据, 读取完毕后再发送停止信号。 tx_rx(半双工)区别于 txrx(全双工)。

参数
i2c_idI2C 索引
slave_addr从机 7 位地址
tx_buffer发送数据缓冲区
tx_size发送数据长度(字节)
rx_buffer接收数据缓冲区
rx_size接收数据长度(字节)
返回
int32_t 实际接收字节数,负数为错误码