草庐IT

I2VGen-XL

全部标签

c++ - 使用 Windows 监视器配置功能时出现 I2C 错误

我正在尝试通过WindowsAPI获取/设置显示器的亮度级别。我已经尝试了Low-LevelMonitorConfigurationFunctions和High-LevelMonitorConfigurationFunctions,但他们似乎都在同一个地方休息。在这两种情况下,我从HMONITOR获取HMONITOR句柄和获取物理监视器句柄都没有问题,但是一旦我尝试查询DDC/CI功能,我就会收到一条错误消息:“将数据传输到I2C总线上的设备。"导致此错误的特定函数是GetMonitorCapabilities对于高级函数和GetCapabilitiesStringLength对于低级

c++ - 使用 Windows 监视器配置功能时出现 I2C 错误

我正在尝试通过WindowsAPI获取/设置显示器的亮度级别。我已经尝试了Low-LevelMonitorConfigurationFunctions和High-LevelMonitorConfigurationFunctions,但他们似乎都在同一个地方休息。在这两种情况下,我从HMONITOR获取HMONITOR句柄和获取物理监视器句柄都没有问题,但是一旦我尝试查询DDC/CI功能,我就会收到一条错误消息:“将数据传输到I2C总线上的设备。"导致此错误的特定函数是GetMonitorCapabilities对于高级函数和GetCapabilitiesStringLength对于低级

STM32——I2C通信

文章目录一、I2C通信二、使用I2C通信的硬件设备三、硬件电路四、I2C时序基本单元起始与终止发送接收发送应答与接收应答五、I2C时序指定地址写当前地址读指定地址读连续读与写六、MPU6050简介七、MPU6050参数八、硬件电路九、MPU6050框图十、系统时钟十一、MPU6050的中断源十二、寄存器映像十三、软件I2C读写MPU6050电路设计关键代码十四、硬件I2C读写MPU6050一、I2C通信I2C总线(InterICBUS)是由Philips公司开发的一种通用数据总线两根通信线:SCL(SerialClock)、SDA(SerialData)同步【多一条时钟线,控制从机读写】,半双

STM32——I2C通信

文章目录一、I2C通信二、使用I2C通信的硬件设备三、硬件电路四、I2C时序基本单元起始与终止发送接收发送应答与接收应答五、I2C时序指定地址写当前地址读指定地址读连续读与写六、MPU6050简介七、MPU6050参数八、硬件电路九、MPU6050框图十、系统时钟十一、MPU6050的中断源十二、寄存器映像十三、软件I2C读写MPU6050电路设计关键代码十四、硬件I2C读写MPU6050一、I2C通信I2C总线(InterICBUS)是由Philips公司开发的一种通用数据总线两根通信线:SCL(SerialClock)、SDA(SerialData)同步【多一条时钟线,控制从机读写】,半双

Linux之I2C驱动

目录一、I2C驱动框架简介1.I2C总线驱动2.I2C设备驱动3.I2C核心二、I2C设备驱动流程1.设备信息描述①不使用设备树②使用设备树2.I2C设备数据收发和处理一、I2C驱动框架简介在Linux内核中I2C的体系结构分为3个部分:①I2C核心:I2C核心提供了I2C总线驱动和设备驱动的注册、注销方法②I2C总线驱动:I2C总线驱动是对I2C硬件体系结构中适配器端的实现,适配器可由CPU控制,甚至可以直接集成在CPU内部。I2C总线驱动就是SOC的I2C控制器驱动,也叫做I2C适配器驱动。 ③I2C设备驱动:I2C设备驱动是对I2C硬件体系结构中设备端的实现,设备一般挂接在受CPU控制的

第三章 rt-thread设备驱动模型-i2c驱动

rt-thread设备驱动模型-i2c驱动1.回顾前面两章分别介绍了rt-thread设备驱动框架的实现原理,以及介绍了一个简单的看门狗驱动程序,用来加深对驱动框架的理解。看门狗驱动程序最终归纳成了下面这一张图:rt-thread对看门狗设备进行了抽象,使用rt_watchdog_device结构体进行描述,这个结构体包含一个rt_device的设备对象,用于将该看门狗设备挂载到内核中的设备信息链表上。另外,rt_watchdog_device还包含一套针对看门狗设备进行操作的方法rt_watchdog_ops,这些方法是需要驱动开发者实现。驱动开发者定义好rt_watchdog_device

DW_apb_i2c 使用介绍2--i2c初始化以及读写eeprom测试

1.DW_apb_i2c寄存器        目前我使用DW_apb_i2c协议是:DW_apb_i2c_2018,即2018版本。这个IP的寄存器共有68个,相对于stm32来说,这个寄存器数量确实有点多,实际使用起来也确实有点繁琐,不过当前的项目需求,有一大部分寄存器是用不到的,所以也还好。另外因为项目原因,一些具体的代码细节不太方便写出来,有疑问可以留言交流。    寄存器是在第5章,截图如下: 具体每个寄存器如何使用就不展开了,直接看寄存器说明即可。2.DW_apb_i2c初始化流程        在第6章的6.3章节,有一个初始化流程图,如下图:        这是一个结合DMA的使

DW_apb_i2c 使用介绍2--i2c初始化以及读写eeprom测试

1.DW_apb_i2c寄存器        目前我使用DW_apb_i2c协议是:DW_apb_i2c_2018,即2018版本。这个IP的寄存器共有68个,相对于stm32来说,这个寄存器数量确实有点多,实际使用起来也确实有点繁琐,不过当前的项目需求,有一大部分寄存器是用不到的,所以也还好。另外因为项目原因,一些具体的代码细节不太方便写出来,有疑问可以留言交流。    寄存器是在第5章,截图如下: 具体每个寄存器如何使用就不展开了,直接看寄存器说明即可。2.DW_apb_i2c初始化流程        在第6章的6.3章节,有一个初始化流程图,如下图:        这是一个结合DMA的使

Linux设备驱动之I2C驱动

Linux下I2C驱动分为两部分:主机驱动和设备驱动。主机驱动:    主机侧I2C控制器使用structi2c_adapter描述,结构体中包含了i2c总线通信方法,设备结构体等。structi2c_adapter{structmodule*owner;unsignedintclass;/*classestoallowprobingfor*/conststructi2c_algorithm*algo;/*总线通信算法*/void*algo_data;/*datafieldsthatarevalidforalldevices*/structrt_mutexbus_lock;inttimeout

I2C知识大全系列四 —— I2C驱动之Linux下的I2C

Linux的I2C体系结构Linux系统定义了I2C驱动体系结构。在Linux系统中,I2C驱动由三部分组成,即I2C核心、I2C总线驱动和I2C设备驱动。这三部分相互协作,形成了非常通用、可适应性很强的I2C框架。I2C核心I2C核心提供了I2C总线驱动和设备驱动的注册、注销方法,I2C通信方法(即“Algorithm”)上层的、与具体适配器无关的代码以及探测设备、检测设备地址的上层代码等。I2C总线驱动I2C总线驱动是对I2C硬件体系结构中适配器端的实现,适配器可由CPU控制,甚至可以直接集成在CPU内部。I2C总线驱动主要包含了I2C适配器数据结构i2c_adapter、I2C适配器的A