50得票6回答
如何使用文件描述符刷新写入?

事实证明这个open()和fopen()的误解源于Linux 2.6.14内核上一个ARM平台下有bug的I2C驱动程序。回退到一个有效的bit bashed驱动程序解决了我在此要处理的问题的根本原因。 我正在尝试解决Linux中(I2C)串行设备驱动程序的问题。似乎通过在写入和读取...

27得票3回答
UART、I2C和SPI在微控制器之间进行处理器通信方面的比较

我正在研究一种连接两个微控制器的方法。在序列化层面上,我考虑使用Nano Protobuffers (http://code.google.com/p/nanopb/),这样我可以编码/解码消息并在两个处理器之间发送它们。 基本上,一个小型处理器将是RPC服务器,能够执行几个功能。更大的处理器...

20得票4回答
I2C_SLAVE ioctl的目的是什么?

我正在编写代码实现一个简单的读/写函数,使用通用linux 驱动程序。我对 : 感到困惑。 内核文档如下所述: 您可以通过使用read(2)和write(2)调用来执行普通的i2c事务。您不需要传递地址字节;相反,在尝试访问设备之前,通过ioctl I2C_SLAVE设置它 然而,我正在...

14得票4回答
在Linux上使用I2C进行读写

我试图读写连接在I2C总线上地址为0b 1010 011的FM24CL64-GTR FRAM芯片。 当我尝试写入3个字节(数据地址2个字节+数据1个字节)时,我会收到内核消息([12406.360000] i2c-adapter i2c-0: sendbytes: NAK bailout.)...

14得票3回答
Linux中的I2C驱动程序

我非常基础地了解I2C技术,它依赖于Linux内核,但我不知道如何实现一个基本的I2C驱动程序。 我想学习如何编写I2C设备驱动程序,您能推荐任何带有源代码映射的初学者教程吗?

14得票2回答
Linux系统下的I2C并发访问,互斥锁

我正在编写一个嵌入式Linux的多线程C程序,从用户空间访问多个I2C设备(slaves)。同时,我也会从多个线程中访问相同的I2C设备。我使用的是SMBUS函数(i2c_smbus_write_byte_data, i2c_smbus_read_byte_data, i2c_smbus_re...

14得票2回答
如何编写多个从设备I2C客户端驱动程序?

我正在开发一款嵌入式板的驱动程序。该驱动程序应该为 v4l2 开放接口,并使用 i2c 与2个设备通信。驱动程序将充当主机。 我似乎无法理解 i2c_device_id 数组和 i2c_add_driver 函数的工作原理。我在内核源代码中阅读了文档,但对于多个从设备客户端无法帮助我。 ...

12得票2回答
SPI为什么比I2C协议更快?

我了解I2C和SPI通信的基础知识。由于两种协议都是同步的,所以我想知道是什么使得SPI比I2C更快。如果我没记错的话,在使用I2C时我们可以达到400kbps的速度,而在SPI中我们可以达到10mbps的速度。这是因为硬件方面的变化吗?这个问题是在我的一次面试中问我的。如果我有错误,请纠正我。

12得票4回答
为什么i2c_smbus函数不可用?(I2C - 嵌入式Linux)

在开发嵌入式Linux软件以便通过I2C总线通信时,经常会涉及使用函数。当在ARM8处理器的软件项目中引用函数(例如i2c_smbus_read_word_data)时,在编译过程中会产生错误,如“i2c_smbus_read_word_data未在此范围内声明”。 调查以下标头文件表明大多...

11得票1回答
未定义对 `i2c_smbus_read_word_data(int, unsigned char)` 的引用

在升级到Ubuntu 18.04之后,我无法编译我的Qt应用程序。 出现以下错误: undefined reference to `i2c_smbus_read_word_data(int, unsigned char) 我理解的是,i2c_smbus_read_word_data现在...