日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

通过I2C读取显示器的EDID信息

發布時間:2023/12/14 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通过I2C读取显示器的EDID信息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一:什么是EDID?

?????? 顯示器中用來存儲顯示器信息的數據格式,包括尺寸、廠家、序列號等等。

?????? EDID數據有128個字節,0x15、0x16兩個字節對應顯示器的寬高。

二:如何獲取顯示器EDID?

?????? EDID存儲在顯示器中,本身是一個用來存儲信息的I2C設備(設備地規定0x50),其通過DDC通道(i2c總線)進行讀取。在服務器上,DDC信號和VGA其它信號從BMC芯片的DAC接出。

?????? 系統下,在加載i2c-dev驅動過后(modprobe i2c-dev),系統下會創建i2c設備節點,通過文件操作去進行i2c的讀取。

#include <fcntl.h> #include <unistd.h> #include <linux/i2c.h> #include <linux/i2c-dev.h> #include <stdio.h> #include <sys/ioctl.h>#define DDC_ADDR 0x50 // #define BASE_ADDR 0x00 #define BASE_ADDR 0x15 //0x15-width, 0x16-height #define DATA_LEN 2 // edid_lenght is 128int main(int argc, char** argv) {if(argc <= 1){fprintf(stderr, "param error, please input device\n");return -1;}char * i2c_dev = argv[1];int fd =open(i2c_dev, O_RDWR);if (fd < 0){fprintf(stderr, "open dev:%s failed/n", i2c_dev);close(fd);return -1;}ioctl(fd, I2C_TIMEOUT, 2);ioctl(fd, I2C_RETRIES, 1);unsigned char buf[DATA_LEN]={0}; unsigned start = BASE_ADDR;struct i2c_msg msgs[2] = {{.addr = DDC_ADDR,.flags = 0,.len = 1,.buf = (void *)&start,},{.addr = DDC_ADDR,.flags = I2C_M_RD,.len = DATA_LEN,.buf = buf,}};struct i2c_rdwr_ioctl_data rdwr;rdwr.msgs = msgs;rdwr.nmsgs = 2;if(ioctl(fd, I2C_RDWR, &rdwr)<0){fprintf(stderr, "ioctl:i2c_rdwr failed\n");close(fd);return -1;}fprintf(stdout, "Width: %dmm, Height: %dmm\n", buf[0]*10, buf[1]*10);close(fd);return 0; }

對于i2c設備,讀取信息時,主設備需要向從設備發送兩個msg,第一個msg包含寫操作(0)、寫入的數據長度(BASE_ADDR長度)和需要讀取的寄存器地址(BASE_ADDR);第二個msg包含需要的讀操作(I2C_M_RD)、讀取數據的長度(等于buf的長度)和數據讀入的地址(buf)。

總結

以上是生活随笔為你收集整理的通过I2C读取显示器的EDID信息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 奇米影 | 国产偷亚洲偷欧美偷精品 | 黄片一区二区 | 亚洲一区二区三区四区在线 | 性少妇bbw张开 | 一曲二曲三曲在线观看中文字幕动漫 | 老司机深夜视频 | 桃色网站在线观看 | 特级西西人体444www | 精品国产一区二区三区在线观看 | 伊朗做爰xxxⅹ性视频 | 日韩黄色大片 | 国产人妻一区二区三区四区五区六 | 在线看片你懂得 | 手机看片一区 | 免费视频一区 | 国产不卡一区二区视频 | 欧洲亚洲一区二区 | 国产亚洲精品久久久久动 | 毛片大全在线观看 | 熟女性饥渴一区二区三区 | 成人免费黄色片 | 亚洲国产一二三区 | 小明看国产 | 老司机在线看片 | 国产91在线精品 | 亚洲色图 在线视频 | 久草一区二区 | 黑人性生活视频 | 国产亚洲精品久久 | 好吊视频一区二区 | 日韩久久精品视频 | 久久久久精彩视频 | 久久精品黄aa片一区二区三区 | www.-级毛片线天内射视视 | 丁香婷婷在线观看 | 欧美三级一级片 | 自拍偷拍视频网 | 顶级毛片 | 一区二区精品视频在线观看 | 精品无人区无码乱码毛片国产 | 综合网视频 | 亚洲精品久久视频 | 欧美三日本三级少妇三 | 成人区一区二区 | 免费看一级一片 | 狠狠躁狠狠躁视频专区 | 国内外成人免费视频 | 久久91精品 | 亚洲精品自拍 | 蜜桃视频久久一区免费观看入口 | 美女屁股网站 | av一级在线观看 | av手机观看 | 亚洲天天视频 | 女女互磨互喷水高潮les呻吟 | 青青青青在线 | 九九九在线观看 | 超碰人人人人人人 | 性自由色xxxx免费视频 | 久久亚洲精品中文字幕 | 欧美黑人性受xxxx精品 | 性欧美video另类hd尤物 | 亚洲剧情av | 天天躁日日躁狠狠躁av麻豆 | 亚洲一区二区三区无码久久 | xfplay5566色资源网站 | 国产99热| 欧美午夜精品理论片 | 夜夜草 | 精品视频第一页 | 久久久久久久久国产精品一区 | 美女又爽又黄视频毛茸茸 | 国产吞精囗交免费视频 | 熟妇人妻中文av无码 | 国产一国产精品一级毛片 | 欧美成人精品一区二区男人看 | 黄色复仇草 | 一级黄色免费 | 欧美精品18videosex性欧美 | 聚色屋 | 日韩中文字幕av电影 | 性xxx18| 国产不卡在线观看 | 亚洲69av| 综合亚洲欧美 | 女性裸体视频网站 | 日韩不卡一二区 | 四季av中文字幕一区 | 日本精品一区二区三区视频 | av大全网站| 成人污污视频 | 中文字幕一区三区 | 狠狠撸在线| 国产精品久久久久久久午夜 | 一起艹在线观看 | 黑人玩弄人妻一区二区三区影院 | 鲁丝一区二区 | 中文字幕第31页 |