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

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

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

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

ch347連接mpu6050模塊的方法

CHANBAEK ? 來源:FunIO ? 作者:FunIO ? 2023-07-23 11:04 ? 次閱讀

在上一篇文章 詳解 I2C的末尾,有這樣一張波形圖:

圖片
實(shí)例2

這個對應(yīng)的就是常見的從設(shè)備寄存器讀數(shù)據(jù)的波形,只是在寫數(shù)據(jù)時多了一個字節(jié)。

通用的從 I2C 設(shè)備讀寄存器數(shù)據(jù)的模式應(yīng)該是這樣的:

圖片
從從設(shè)備寄存器讀數(shù)據(jù)示例

在mpu6050 數(shù)據(jù)表 中的9.3 I2C Communications Protocol章節(jié)說明了 mpu6050 的 i2c 接口協(xié)議,符合通用模式。

mpu6050 單字節(jié)寫和加速寫序列如下:

圖片

mpu6050單字節(jié)寫和加速寫

mpu6050 單字節(jié)讀和加速讀序列如下:

圖片

mpu6050單字節(jié)讀和加速讀

上面的加速寫和加速讀都是以 2 個數(shù)據(jù)字節(jié)為例的。

從實(shí)例 2 的波形圖可以看出,啟動傳輸后,寫了0x12``0x13``0x143 個字節(jié),這 3 個字節(jié)后都是NACK,然后是重復(fù)起始信號,跟著剛才地址字節(jié)0x12+10x13,I2C 從寫轉(zhuǎn)換到讀,然后開始讀數(shù)據(jù)字節(jié)。

對應(yīng)代碼為:

result = ch347_driver.i2c_set(device_index, 1)
if result:
    print("Success to set I2C speed.")
else:
    print("Failed to set I2C speed.")

result = ch347_driver.i2c_set_delay_ms(device_index, 1)
if result:
    print("Success to set I2C delay.")
else:
    print("Failed to set I2C delay.")


result = ch347_driver.stream_i2c(device_index, b'x12x13x14', 8)
if result:
    print("Success!")
else:
    print("Failed!")

將上面這段代碼稍加修改:

result = ch347_driver.i2c_set(device_index, 1)
if result:
    print("Success to set I2C speed.")
else:
    print("Failed to set I2C speed.")

result = ch347_driver.i2c_set_delay_ms(device_index, 1)
if result:
    print("Success to set I2C delay.")
else:
    print("Failed to set I2C delay.")


result = ch347_driver.stream_i2c(device_index, b'xd0x75', 1)
if result:
    print("Success! result:", result.hex())
else:
    print("Failed!")

mpu6050 模塊的地址是0b1101000(AD0 = 0),左移 1 位得到設(shè)備寫地址0xd0,讀數(shù)據(jù)時的讀地址 ch347 會自動產(chǎn)生,波形如下:

圖片
讀寄存器0x75

還沒有連接 mpu6050 模塊,所以沒有數(shù)據(jù)返回。現(xiàn)在把 mpu6050 模塊 i2c 接口連接到 ch347 模塊上,運(yùn)行程序,結(jié)果為:

?  python test.py
Successfully opened device index: 0
Device Information:
iIndex: 0
DevicePath: ?USB#VID_1A86&PID_55DB&MI_02#7&2887B016&0&0002#{5446F048-98B4-4EF0-96E8-27994BAC0D00}
UsbClass: 0
FuncType: 1
DeviceID: USBVID_1A86&PID_55DB&MI_02#7&2887B016&0&0002#
ChipMode: 1
DevHandle: 912
BulkOutEndpMaxSize: 512
BulkInEndpMaxSize: 512
UsbSpeedType: 1
CH347IfNum: 0
DataUpEndp: 6
DataDnEndp: 6
ProductString:
ManufacturerString:
WriteTimeout: 500
ReadTimeout: 500
FuncDescStr: USB2.0 To SPI&IIC
FirewareVer: 64
 ch347.mDeviceInforS object at 0x000002465A1E63C0 >
Version Information:
Driver Version: 35
DLL Version: 34
Device Version: 64
Chip Type: 1
Success to set I2C speed.
Success to set I2C delay.
Success! result: 68
Successfully closed device index: 0

可以看到返回了數(shù)據(jù)0x680x75是'WHO_AM_I'寄存器,默認(rèn)值為0x68

圖片
'WHO_AM_I'寄存器

完整代碼:

import ch347

dll_path = "ch347dlla64.dll"  # Replace with the actual path to the DLL
device_index = 0  # Set the device index according to your requirements

ch347_driver = ch347.CH347Driver(dll_path)

result = ch347_driver.open_device(device_index)
if result:
    print(f"Successfully opened device index: {device_index}")
else:
    print(f"Failed to close device index: {device_index}")

result, device_info = ch347_driver.get_device_info(device_index)
if result:
    print("Device Information:")
    print(f"iIndex: {device_info.iIndex}")
    print(f"DevicePath: {device_info.DevicePath.decode()}")
    print(f"UsbClass: {device_info.UsbClass}")
    print(f"FuncType: {device_info.FuncType}")
    print(f"DeviceID: {device_info.DeviceID.decode()}")
    print(f"ChipMode: {device_info.ChipMode}")
    print(f"DevHandle: {device_info.DevHandle}")
    print(f"BulkOutEndpMaxSize: {device_info.BulkOutEndpMaxSize}")
    print(f"BulkInEndpMaxSize: {device_info.BulkInEndpMaxSize}")
    print(f"UsbSpeedType: {device_info.UsbSpeedType}")
    print(f"CH347IfNum: {device_info.CH347IfNum}")
    print(f"DataUpEndp: {device_info.DataUpEndp}")
    print(f"DataDnEndp: {device_info.DataDnEndp}")
    print(f"ProductString: {device_info.ProductString.decode()}")
    print(f"ManufacturerString: {device_info.ManufacturerString.decode()}")
    print(f"WriteTimeout: {device_info.WriteTimeout}")
    print(f"ReadTimeout: {device_info.ReadTimeout}")
    print(f"FuncDescStr: {device_info.FuncDescStr.decode()}")
    print(f"FirewareVer: {device_info.FirewareVer}")
    print(repr(device_info))
else:
    print("Failed to get device information.")

result, driver_ver, dll_ver, device_ver, chip_type = ch347_driver.get_version(device_index)
if result:
    print("Version Information:")
    print(f"Driver Version: {driver_ver}")
    print(f"DLL Version: {dll_ver}")
    print(f"Device Version: {device_ver}")
    print(f"Chip Type: {chip_type}")
else:
    print("Failed to get version information.")

result = ch347_driver.i2c_set(device_index, 1)
if result:
    print("Success to set I2C speed.")
else:
    print("Failed to set I2C speed.")

result = ch347_driver.i2c_set_delay_ms(device_index, 1)
if result:
    print("Success to set I2C delay.")
else:
    print("Failed to set I2C delay.")


result = ch347_driver.stream_i2c(device_index, b'xd0x75', 1)
if result:
    print("Success! result:", result.hex())
else:
    print("Failed!")


# Example usage of CH347CloseDevice
result = ch347_driver.close_device(device_index)
if result:
    print(f"Successfully closed device index: {device_index}")
else:
    print(f"Failed to close device index: {device_index}")

接下來就可以對 mpu6050 各種功能進(jìn)行封裝,然后在電腦上直接獲取傳感器數(shù)據(jù)了。

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

    關(guān)注

    7

    文章

    2730

    瀏覽量

    47649
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5363

    瀏覽量

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

    關(guān)注

    28

    文章

    1495

    瀏覽量

    124231
  • MPU6050
    +關(guān)注

    關(guān)注

    39

    文章

    307

    瀏覽量

    71556
收藏 人收藏

    評論

    相關(guān)推薦

    MPU6050連接失敗錯誤

    大家好,我想知道是否有人能快速瀏覽一下我的項(xiàng)目,讓我知道我做錯了什么。這是我從山姆的博客下載的一個項(xiàng)目,我遵循了他推薦的內(nèi)容。代碼運(yùn)行但引發(fā)了一個錯誤:“MPU6050連接失敗”,然后打印0遍。我想
    發(fā)表于 10-24 16:57

    MPU6050模塊

    2.4 STM32 MPU6050數(shù)據(jù)獲取(IIC + DMP)本篇文章主要針對廉價的MPU6050模塊。我們這里完成了MPU6050的數(shù)據(jù)獲取、零偏自動設(shè)置、溫漂抑制。這里提供源碼工
    發(fā)表于 08-09 07:17

    使用esp32連接mpu6050讀取角度數(shù)據(jù)

    使用esp32連接mpu6050,讀取角度(這里只是讀取角度,其他的自行去查閱,很多廠家都有例程的)。這邊使用的是維特一家廠家的(他們的技術(shù)服務(wù)很好),看了官方的arduino例程,發(fā)現(xiàn)他們
    發(fā)表于 02-10 07:11

    MPU6050(硬件IIC)

    MPU6050(硬件IIC)MPU6050(硬件IIC)
    發(fā)表于 04-02 16:29 ?79次下載

    Arduino與MPU6050的通信

    為避免糾纏于電路細(xì)節(jié),我們直接使用集成的MPU6050模塊MPU6050的數(shù)據(jù)接口用的是I2C總線協(xié)議,因此我們需要Wire程序庫的幫助來實(shí)現(xiàn)Arduino與MPU6050之間的通信
    發(fā)表于 11-07 14:25 ?7851次閱讀
    Arduino與<b class='flag-5'>MPU6050</b>的通信

    mpu6050怎么與單片機(jī)連接

    本文開始介紹了mpu6050的定義和mpu6050的感測范圍,其次闡述了mpu6050特征,最后介紹了mpu6050與單片機(jī)的連接
    發(fā)表于 03-09 08:42 ?2.7w次閱讀

    Arduino與MPU6050連接的代碼詳細(xì)資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是Arduino與MPU6050連接的代碼詳細(xì)資料免費(fèi)下載。
    發(fā)表于 07-23 08:00 ?4次下載
    Arduino與<b class='flag-5'>MPU6050</b><b class='flag-5'>連接</b>的代碼詳細(xì)資料免費(fèi)下載

    怎樣將Arduino與MPU6050連接

    在進(jìn)入項(xiàng)目之前,您需要了解MPU6050傳感器的一些基礎(chǔ)知識。 MPU-6050是一種IMU傳感器,在單個芯片上包含MEMS(微機(jī)電系統(tǒng))加速度計(jì)和MEMS陀螺儀。
    的頭像 發(fā)表于 07-29 08:56 ?3.8w次閱讀

    MPU6050專用穩(wěn)壓模塊的原理圖設(shè)計(jì)

    MPU6050專用穩(wěn)壓模塊的原理圖設(shè)計(jì)
    發(fā)表于 11-07 19:21 ?42次下載
    <b class='flag-5'>MPU6050</b>專用穩(wěn)壓<b class='flag-5'>模塊</b>的原理圖設(shè)計(jì)

    MPU6050簡介

    MPU6050簡介什么是MPU6050MPU6050的特點(diǎn)MPU6050框圖MPU6050初始化MPU6050—DMP使用介紹
    發(fā)表于 12-06 11:51 ?76次下載
    <b class='flag-5'>MPU6050</b>簡介

    mpu6050使用 基于esp32

    使用esp32連接mpu6050,讀取角度(這里只是讀取角度,其他的自行去查閱,很多廠家都有例程的)。這邊使用的是維特一家廠家的(他們的技術(shù)服務(wù)很好),看了官方的arduino例程,發(fā)現(xiàn)他們
    發(fā)表于 12-06 12:36 ?10次下載
    <b class='flag-5'>mpu6050</b>使用 基于esp32

    GY-521模塊--MPU6050芯片基本學(xué)習(xí)(一)

    GY-521模塊--MPU6050芯片學(xué)習(xí)(一)一、模塊介紹二、MPU6050MPU6050 的特點(diǎn):MPU6050檢測軸示意圖
    發(fā)表于 12-06 13:36 ?32次下載
    GY-521<b class='flag-5'>模塊</b>--<b class='flag-5'>MPU6050</b>芯片基本學(xué)習(xí)(一)

    MPU6050( )

    MPU6050( )
    發(fā)表于 12-06 15:06 ?31次下載
    <b class='flag-5'>MPU6050</b>( )

    高速USB轉(zhuǎn)接芯片CH347技術(shù)手冊

    電子發(fā)燒友網(wǎng)站提供《高速USB轉(zhuǎn)接芯片CH347技術(shù)手冊.pdf》資料免費(fèi)下載
    發(fā)表于 09-09 15:29 ?7次下載
    高速USB轉(zhuǎn)接芯片<b class='flag-5'>CH347</b>技術(shù)手冊

    高速USB轉(zhuǎn)接芯片 CH347

    CH347 是一款高速 USB 總線轉(zhuǎn)接芯片,通過 USB 總線提供異步串口、I2C 同步串行接口、SPI 同 步串行接口和 JTAG 接口等。 在異步串口方式下,CH347 提供了 2 個
    的頭像 發(fā)表于 04-28 11:27 ?3061次閱讀
    高速USB轉(zhuǎn)接芯片 <b class='flag-5'>CH347</b>
    主站蜘蛛池模板: 快播免费电影 | 国产成人理在线观看视频 | 色狐直播免费观看 | 99精品国产高清自在线看超 | 欧美人与动牲交A免费 | 国产成人a在一区线观看高清 | yin乱教师系列合集 yin荡体育课羞耻play双性 | 男人到天堂a线牛叉在线 | 天天久久影视色香综合网 | 好姑娘社区在线视频 | 午夜福利影院私人爽爽 | 谁有成人网站地址 | 欧美一区二区高清 | 男女爽爽无遮挡午夜视频在线观看 | 玉娇龙续集春雪瓶txt免费阅读 | 麻豆成人久久精品二区三区网站 | 国产成人无码精品久久久免费69 | 国精产品一区一区三区有限在线 | 伊人网中文字幕 | 思思99精品国产自在现线 | 日韩人妻双飞无码精品久久 | 色综合久久天天影视网 | 57PAO强力打造高清免费 | 亚洲1卡二卡3卡4卡新区在线 | 美女伊人网 | 精品国内自产拍在线观看视频 | 午夜免费福利片 | 狼好色有你好看 | 麻豆免费观看高清完整视频在线 | 真实国产精品视频国产网 | 狠狠插狠狠干 | 色男人综合 | 久久亚洲精品无码A片大香大香 | 亚洲精品国产A久久久久久 亚洲精品国产AV成人毛片 | 月夜直播免费看 | 国产精品色无码AV在线观看 | 97人妻精品全国免费视频 | bl被教练啪到哭H玉势 | 国产成人无码精品久久久按摩 | 久久机热视频 这里只有精品首页 | 寂寞骚妇女被后入式抽插 |