gpt4 book ai didi

Linux I2C-Dev IOCTL-Call 产生错误消息

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:28:34 27 4
gpt4 key购买 nike

我在 Linux 下使用 I2C 设备并尝试使用设备接口(interface),如下所述 Link .

因此,如果我们假设以下代码:

char outbuf[SIZE] = { 'e', 'b' };

struct i2c_rdwr_ioctl_data msgset;
struct i2c_msg msg[1];

msg[0].addr = 0x53; // access address 0x53
msg[0].flags = 0; // 0 means write
msg[0].len = SIZE; // size is already set to two
msg[0].buf = outbuf

msgset.msgs = msg;
msgset.nmsgs = 1;

ioctl( file, I2C_RDWR, &msgset ); // fille is already assigned, etc.

我们会写一条包含两个字节的消息到地址 0x53!?或者我们可以说,

S Addr Wr [A] Data [A] Data [A] P

就像它完成的那样here .

但是当我查看我的示波器时,我得到如下信息: message complete

或更详细一点:

enter image description here enter image description here

但这不是我们想要的,也不是规范所说的,此外我们得到

S Addr Wr [A] Data P S Addr Wr [A] Data P

有谁知道这种行为或可以向我描述一下吗?我尝试了所有类型的调用 IOCTL、SMBUS、write_block_data。每次数据字节之间有一个新的开始条件,地址也会重复!

我是不是搞错了什么?

感谢您的宝贵时间和最诚挚的问候!

贝菲多

最佳答案

我发现错位...

我的硬件是这样设置的:

Notebook -> DP/VGA -> I2C-Slave

我使用了一台只有 DisplayPort 输出的笔记本电脑,通过 DP-to-VGA 适配器将其转换并使用了 I2C 接口(interface),其中连接了一个简单的从设备。

而且看起来 DP-to-VGA 适配器只能使用字节宽访问 I2C 总线,所以我设置了一个"new"笔记本电脑,它集成了一个 VGA 接口(interface)并直接使用它......

enter image description here

这导致了完美对齐的传输,正如预期的那样。

关于Linux I2C-Dev IOCTL-Call 产生错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30804539/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com