c - 我需要在 fedora 操作系统中的 I2c 上发送原始数据缓冲区

标签 c fedora ioctl

我需要将字符缓冲区发送到 fedora 操作系统上的 i2c。 我正在使用以下代码:

file = open(path, O_RDWR);
union i2c_smbus_data dt[3];
dt[0].byte = 0xe7 ; 
dt[1].byte = 0x3f ; 
dt[2].byte = 0x00 ; 
args.read_write = I2C_SMBUS_WRITE;
args.command = 0x0d;
args.size = 4;
args.data = dt;
ioctl(file,I2C_SMBUS,&args);

它似乎只能工作最多 3 个字节,然后我不确定它发送什么。 有没有我可以使用的代码? 谢谢,

最佳答案

事实证明,我可以简单地使用 write(file, *buff , int len) 函数在设置后直接将缓冲区发送到 /dev/i2c-.. 设备带 ioctl 的设备地址。

关于c - 我需要在 fedora 操作系统中的 I2c 上发送原始数据缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77521360/

相关文章:

c - Ruby 1.9.1-p378 C 扩展 rb_block_call 怪异

linux - AMD GPU 无法在 Linux 上使用 Blender 的 "Cycles Render"

perl - 如何使用 ioctl 获取终端的宽度和高度?

phpMyAdmin - 配置文件是否更改?

linux - 为什么使用 rm 从容器中删除文件后虚拟大小仍然相同?

c - 如何使用 C 获取 OS X 上所有接口(interface)的 IP 地址

c - read()/ioctl 干扰 GPIO 信号?

c - 用C中的argv计数

接受默认参数的 C 函数

c++ - 有没有比 getchar() (C/C++) 更快地读取字符串的方法?