色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Milk-V Duo開發(fā)板免費體驗 I2C分析

范成功 ? 來源:wakojosin ? 作者:wakojosin ? 2023-07-21 10:53 ? 次閱讀

I2C需要分兩部分進行修改,第一部分是設(shè)備樹的配置,這部分主要是有關(guān)I2C控制器相關(guān)的參數(shù)、中斷等,另一部分是硬件引腳的配置,由于驅(qū)動用的是i2c-designware的通用驅(qū)動,所以需要讀取進行IO初始化,這就出現(xiàn)了額外的操作,希望后面對驅(qū)動進行適配,可以從設(shè)備樹對引腳進行配置,自動完成初始化。

下面就來看看I2C驅(qū)動的大概過程吧:

設(shè)備樹

// linux_5.10/arch/riscv/boot/dts/cvitek/cv180x_base.dtsi
i2c0: i2c@04000000 {
	compatible = "snps,designware-i2c";
	clocks = ;
	reg = ;
	clock-frequency = ;

	#size-cells = ;
	#address-cells = ;
	resets = ;
	reset-names = "i2c0";
};

// linux_5.10/arch/riscv/boot/dts/cvitek/cv180x_base_riscv.dtsi
i2c0: i2c@04000000 {
	interrupts = ;
	interrupt-parent = ;
};

驅(qū)動源碼

使用的是i2c designware的框架。

控制器驅(qū)動

// linux_5.10/drivers/i2c/busses/i2c-designware-platdrv.c
dw_i2c_plat_probe(struct platform_device *pdev):
	i2c_dw_probe(struct dw_i2c_dev *dev)
		i2c_dw_probe_master(struct dw_i2c_dev *dev)
			i2c_add_numbered_adapter(struct i2c_adapter *adap)
				i2c_add_adapter(struct i2c_adapter *adapter)
					i2c_register_adapter(struct i2c_adapter *adap)
						device_register(struct device *dev) // 注冊設(shè)備

設(shè)備驅(qū)動

// linux_5.10/drivers/i2c/i2c-core-base.c
i2c_register_driver(struct module *owner, struct i2c_driver *driver)
	driver_register(&driver->driver); // 注冊驅(qū)動

通過device_register和driver_register會進行match和probe的操作,從而關(guān)聯(lián)起來I2C適配器和設(shè)備驅(qū)動。

對于詳細(xì)得展開需要進一步的學(xué)習(xí)。

應(yīng)用編程

i2c的驅(qū)動編程就是open/read/write/ioctrl這一套。

uint8_t reg_addr = 0x00;
uint8_t data_buf[2];

// 打開設(shè)備
int i2c_fd = open("/dev/i2c-0", O_RDWR);

// 方式一:
// 設(shè)置從機地址
ioctl(i2c_fd, I2C_SLAVE, slave_addr);
write(i2c_fd, 0, ?_addr, 1);
read(i2c_fd, 0, data_buf, 2);

// 方式二:
struct i2c_rdwr_ioctl_data rdwr;
struct i2c_msg msgs[2];
msgs[0].addr  = I2C_SLAVE;
msgs[0].flags = 0;
msgs[0].len   = 1;
msgs[0].buf   = ?_addr;
msgs[1].addr  = I2C_SLAVE;
msgs[1].flags = I2C_M_RD;
msgs[1].len   = 2;
msgs[1].buf   = data_buf;
rdwr.msgs  = msgs;
rdwr.nmsgs = 2;
ioctl(file, I2C_RDWR, &rdwr);

以上兩種方式選擇其中一種就行。

接下去就用溫濕度傳感器測試一下i2c總線的使用,演示過程后面通過視頻展示。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16433

    瀏覽量

    178961
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1495

    瀏覽量

    124228
  • 溫濕度傳感器
    +關(guān)注

    關(guān)注

    5

    文章

    581

    瀏覽量

    35801
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5117

    瀏覽量

    97934
收藏 人收藏

    評論

    相關(guān)推薦

    Milk-V Duo】1、入門篇

    入門milk-V Duo開發(fā)板
    的頭像 發(fā)表于 07-07 11:21 ?1704次閱讀
    【<b class='flag-5'>Milk-V</b> <b class='flag-5'>Duo</b>】1、入門篇

    Milk-V Duo開發(fā)板免費體驗】Milk-V初次使用

    Milk-V Duo開發(fā)板免費體驗】Milk-V初次使用
    的頭像 發(fā)表于 08-08 09:03 ?2544次閱讀
    【<b class='flag-5'>Milk-V</b> <b class='flag-5'>Duo</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>免費</b>體驗】<b class='flag-5'>Milk-V</b>初次使用

    Milk-V Duo 開發(fā)板免費體驗】 + 系統(tǒng)鏡像燒錄以及登錄

    Milk-V Duo 開發(fā)板免費體驗】+系統(tǒng)鏡像燒錄以及登錄 一.Milk-V Duo
    發(fā)表于 07-11 11:43

    Milk-V Duo 開發(fā)板免費體驗】Milk-V Duo之開箱初體驗

    一,第一印象 外觀設(shè)計方面,Milk-V Duo以簡約而精致的風(fēng)格為主,采用沉金工藝,給人一種高端大氣的感覺。開發(fā)板的尺寸小巧,便于攜帶和使用,在我拿到的所有的開發(fā)板中,也只有
    發(fā)表于 07-16 01:15

    Milk-V Duo 開發(fā)板免費體驗】1.開箱體驗

    感謝算能和電子發(fā)燒友論壇的開發(fā)板試用活動,有幸體驗Milk-V Duo 開發(fā)板Milk-V Duo
    發(fā)表于 07-23 16:00

    Milk-V Duo 開發(fā)板免費體驗】Milk-V Duo 開發(fā)板學(xué)習(xí)初體驗

    milkv-duo-20230616-2232.img自制成linux啟動盤 3、通過Type-C數(shù)據(jù)線連接電腦,小板系統(tǒng)順暢的啟動了 登錄Milk-V Duo小板的系統(tǒng)耍耍吧 1、正
    發(fā)表于 07-28 15:58

    Milk-V Duo 開發(fā)板免費體驗】開發(fā)板使用3

    接上文 【Milk-V Duo 開發(fā)板免費體驗】開發(fā)板使用1 |和接上文 【Milk-V
    發(fā)表于 07-29 08:17

    Milk-V Duo 開發(fā)板免費體驗】milkv-duo 申請成功體驗

    。 引腳圖 總結(jié) Milk-V Duo開發(fā)板的小巧精致設(shè)計和強悍的性能確實為創(chuàng)客和開發(fā)者提供了一個優(yōu)秀的平臺。它的緊湊設(shè)計使得它適用于各種空間有限的場景,同時強大的性能可以支持復(fù)雜
    發(fā)表于 07-29 14:31

    Milk-V Duo 開發(fā)板免費體驗】初步體驗 + 搭建開發(fā)環(huán)境

    鏈接依賴過去即可了,后續(xù)可以直接修改文件系統(tǒng)去燒錄。【Milk-V Duo 開發(fā)板免費體驗】OpenCV的交叉編譯 - RISC-V MCU
    發(fā)表于 08-01 12:49

    Milk-V Duo 開發(fā)板免費體驗】Milk-V Duo 開發(fā)板初體驗

    Milk-V Duo開發(fā)板(圖4)是一款基于CV1800B芯片(RISC-V架構(gòu),C906@1Ghz +
    發(fā)表于 08-18 00:26

    Milk-V Duo 開發(fā)板免費體驗】3-Linux控制小車方向

    接上兩篇:【Milk-V Duo 開發(fā)板免費體驗】2控制螺旋槳電路https://bbs.elecfans.com/jishu_237105
    發(fā)表于 08-20 23:57

    Milk-V Duo 開發(fā)板免費體驗】4-Linux控制小車動作(原創(chuàng))首發(fā)

    Milk-V Duo 開發(fā)板免費體驗】2控制螺旋槳電路https://bbs.elecfans.com/jishu_2371054_1_
    發(fā)表于 08-21 02:11

    Milk-V Duo 開發(fā)板免費體驗】初體驗及開箱視頻

    剛剛收到開發(fā)板,給大家做個視頻來初步了解以下Milk-V Duo 開發(fā)板Milk-V Duo
    發(fā)表于 08-22 23:59

    Milk-V Duo 開發(fā)板免費體驗】②、ssh連接Milk-V Duo開發(fā)板

    承接上期的開箱貼,此次將Milk-V Duo開發(fā)板運行l(wèi)inux系統(tǒng)。在此之前需要手頭準(zhǔn)備一張8GB以上的TF卡,并使用讀卡器將TF燒錄Linux鏡像文件。這里需要借助燒寫工具rufus,這款工具
    發(fā)表于 08-29 00:53

    Milk-V Duo開發(fā)板免費體驗】評測三、I2C功能摸索

    調(diào)試milkv duoi2c功能
    的頭像 發(fā)表于 07-28 08:59 ?1805次閱讀
    【<b class='flag-5'>Milk-V</b> <b class='flag-5'>Duo</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>免費</b>體驗】評測三、<b class='flag-5'>I2C</b>功能摸索
    主站蜘蛛池模板: 2021精品国产综合久久| 久久99视频免费| 色综合久久88一加勒比| 国产成人久久婷婷精品流白浆| 午理论理影片被窝| 久久女婷五月综合色啪| 超碰caoporon最新视频| 我就去色色| 妈妈的职业3完整版在线播放| 床上色APP下载免费版 | 精品日产1区2卡三卡麻豆| 在线国产视频观看| 全肉高H短篇合集| 精品国产人妻国语| 朝鲜黄色录像| 影音先锋男人av橹橹色| 色99久久久久高潮综合影院| 九九这里有精品| 成人欧美尽粗二区三区AV| 亚洲精品久久久久久蜜臀| 明星三级电影| 四虎永久免费网址| 久久国产高清字幕中文| 一个人的视频在线观看免费观看| 嫩草影院地址一二三| 国产一区二区免费在线观看| 99久久久免费精品免费| 亚洲AVAV天堂AV在线网爱情| 嫩草www视频在线观看高清| 国产三级精品三级在线观看| a亚洲在线观看不卡高清| 欧美最猛黑人XXXXWWW| 扒开双腿疯进出爽爽爽动态图| 热久久2018亚洲欧美| 经典三级四虎在线观看| 单亲妈妈3韩国电影免费观看| 伊人久久伊人| 无止侵犯高H1V3无止侵犯| 欧美精品九九99久久在免费线| 狠狠狠的在啪线香蕉| 国产精品成人免费观看|