i2c_transfer函数的返回值类型是int。它返回一个整数,用于指示函数调用的结果。 3. 列举i2c_transfer函数返回值可能表示的状态或结果 正整数:表示成功传输的消息数量。注意,即使所有消息都被尝试发送,但由于I2C协议的特性(如从设备没有响应或NACK),实际成功传输的消息数量可能少于请求的数量。 负数:表示函数执行过程中...
int i2c_transfer(struct i2c_adapter *adap,struct i2c_msg *msgs,int num) adap:所使用的 I2C 适配器,i2c_client 会保存其对应的 i2c_adapter。 msgs:I2C 要发送的一个或多个消息。 num:消息数量,也就是 msgs 的数量。 返回值:负值,失败,其他非负值,发送的 msgs 数量。 i2c_master_send 和 i2c_maste...
int32_t I2cTransfer(DevHandle handle, struct I2cMsg *msgs, int16_t count) 自定义传输 使用流程 使用I2C设备的一般流程如下图所示。 图2 I2C设备使用流程图 打开I2C控制器 在进行I2C通信前,首先要调用I2cOpen打开I2C控制器。 DevHandle I2cOpen(int16_t number); 表2 I2cOpen参数和返回值描述 参数参数描...
请检查硬件上拉是否给电。 2、调用 i2c_transfer 返回值为 -6? 返回值为 -6 表示为 NACK 错误,即对方设备无应答响应,这种情况一般为外设的问题,常见的有以下几种情况: I2C 地址错误,解决方法是测量 I2C 波形,确认是否 I2C 设备地址错误; I2C slave 设备不处于正常工作状态,比如未给电,错误的上电时序等; ...
命令: i2ctransfer -f -y 85 w1@0x20 0x00 r1 返回值:0x08 从一个地址读取一个字节的信息 下面详细展开说一下: 内容索引 1.链路拓扑: 2.测试仪器及参数: 3.测试参数: I2C, stand mode 4.OpenBMC命令: i2cdetect -l ---查看所有I2C选路信息 i2c...
调用i2c_transfer 返回值为 -6? 返回值为 -6 表示为 NACK 错误,即对方设备无应答响应,这种情况一般为外设的问题,常见的有以下几种情况: I2C 地址错误,解决方法是测量 I2C 波形,确认是否 I2C 设备地址错误; I2C slave 设备不处于正常工作状态,比如未给电,错误的上电时序等; ...
I2cTransfer 的返回值表示成功发送的 i2cMsg 数据包数量 总结 I2C 基础知识:概念和特性、4 个地址(设备地址、读地址、写地址、字地址)、波形(起始、结束、数据发送、数据接收) I2C 调试手段:电压、上拉电阻、/dev/i2c-x、i2c-tools HDF 框架 I2C 驱动:AT24C256 芯片按照字节寻址方式读写(按照页 64 字节寻址、...
返回值:负值,失败,其他非负值,发送的字节数。 关于Linux 下 I2C 设备驱动的编写流程就讲解到这里,重点就是 i2c_msg 的构建和 i2c_transfer 函数的调用,接下来我们就编写 AP3216C 这个 I2C 设备的 Linux 驱动。 示例驱动: ...
inti2c_transfer(struct i2c_adapter * adap, struct i2c_msg *msgs,intnum); 用于进行I2C适配器和I2C设备之间的一组消息交互。其本身不具备驱动适配器物理硬件完成消息交互的能力,它只是寻找到i2c_adapter对应的i2c_algorithm,并使用i2c_algorithm的master_xfer()函数真正驱动硬件流程。
错误返回值参考:defineEPERM 1/* Operation not permitted */ defineENOENT 2/* No such file or directory */ defineESRCH 3/* No such process */ defineEINTR 4/* Interrupted system call */ defineEIO 5/* I/O error */ defineENXIO 6/* No such device or address */ defineE2BIG ...