国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

stm32cubemx配置mpu6050——10分鐘0基礎(chǔ)到靈活使用

這篇具有很好參考價(jià)值的文章主要介紹了stm32cubemx配置mpu6050——10分鐘0基礎(chǔ)到靈活使用。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

stm32cubemx配置mpu6050——10分鐘0基礎(chǔ)到靈活使用

10分鐘速通!你沒看錯(cuò),就是10min,從0基礎(chǔ)到靈活運(yùn)用mpu6050。

不信?往下看看就會(huì):嗷~原來如此

第一步

下載github開源代碼。

https://github.com/leech001/MPU6050

首先聲明,此代碼不是本人所寫,為某俄羅斯大佬提供。

如果你訪問不了github不用擔(dān)心,我在文章最后附上下載下來的文件

第二步

軟件

根據(jù)github開源項(xiàng)目的Readme內(nèi)容,進(jìn)行工程配置:

  1. 開啟i2c

    stm32cubemx配置mpu6050——10分鐘0基礎(chǔ)到靈活使用

  2. 將下載下來的.c和.h文件加入到工程內(nèi)。(有運(yùn)用mpu6050需求的同學(xué),應(yīng)該這部都會(huì)知道怎么做吧?

  3. 在需要調(diào)用mpu6050接口的地方,包含mpu6050.h就可以。此處和項(xiàng)目作者一樣,在“第三步”中以在main.c調(diào)用為例舉例說明。

硬件

接下來我將手摸手帶大家連接電路

單片機(jī)引腳 6050引腳
3.3V VCC 3.3V供電
GND GND
B10 SCL I2C時(shí)鐘
B11 SDA I2C數(shù)據(jù)
GND AD0 AD0為6050地址控制引腳,接地就可以

stm32cubemx配置mpu6050——10分鐘0基礎(chǔ)到靈活使用

第三步

代碼配置

包含mpu6050.h頭文件

/ * USER CODE BEGIN Includes * /
#include "mpu6050.h"
/ * USER CODE END Includes * /

定義mpu6050結(jié)構(gòu)體

/ * USER CODE BEGIN PV * /
MPU6050_t MPU6050;
/ * USER CODE END PV * /

在main函數(shù)開頭,初始化mpu6050

/ * USER CODE BEGIN 2 * /

while (MPU6050_Init(&hi2c1) == 1);

/ * USER CODE END 2 * /

調(diào)用MPU6050_Read_All函數(shù),讀取所有參數(shù)

/ * USER CODE BEGIN WHILE * /
while (1)
{
/ * USER CODE END WHILE * /

/ * USER CODE BEGIN 3 * /
  MPU6050_Read_All(&hi2c1, &MPU6050);
  HAL_Delay (100);
}
/ * USER CODE END 3 * /

那么問題來了,我如何訪問這些參數(shù)呢?比如讀取z軸加速度。

這就要看mpu6050.h里面的MPU6050_t結(jié)構(gòu)體了。

typedef struct
{

    int16_t Accel_X_RAW;	// 原始數(shù)值,忽略
    int16_t Accel_Y_RAW;
    int16_t Accel_Z_RAW;
    double Ax;				// x方向加速度,單位為重力加速度g (也就是9.8)
    double Ay;				// y方向加速度
    double Az;				// z方向加速度

    int16_t Gyro_X_RAW;
    int16_t Gyro_Y_RAW;
    int16_t Gyro_Z_RAW;
    double Gx;				// x方向陀螺儀加速度		
    double Gy;				// y方向陀螺儀加速度
    double Gz;				// z方向陀螺儀加速度

    float Temperature;		// 溫度

    double KalmanAngleX; 	// 卡爾曼濾波過后的角度
    double KalmanAngleY; 	// 卡爾曼濾波過后的角度
} MPU6050_t;

那么如何訪問z軸加速度呢?

a = MPU6050.Az;

除了一口氣讀取所有參數(shù)的MPU6050_Read_All函數(shù),作者還提供了其他的函數(shù),總有一款適合你。詳細(xì)請參見mpu6050.h

函數(shù)名 作用
MPU6050_Read_All 讀取所有參數(shù)
MPU6050_Read_Accel 讀取加速度參數(shù)
MPU6050_Read_Gyro 讀取陀螺儀數(shù)據(jù)
MPU6050_Read_Temp 讀取溫度

示例代碼

main函數(shù)前

#include "mpu6050.h"

MPU6050_t MPU6050;

main函數(shù)內(nèi)

while (MPU6050_Init(&hi2c2) == 1)
    ;
// 讀取所有參數(shù)
MPU6050_Read_All(&hi2c2, &MPU6050);
printf("加速度 x:%.2f \t y:%.2f \t z:%.2f\n",MPU6050.Ax,MPU6050.Ay,MPU6050.Az);
printf("陀螺儀 x:%.2f \t y:%.2f \t z:%.2f\n",MPU6050.Gx,MPU6050.Gy,MPU6050.Gz);
printf("溫度 %.2f\n",MPU6050.Temperature);

// 讀取加速度
MPU6050_Read_Accel(&hi2c2, &MPU6050);
printf("只更新加速度 x:%.2f \t y:%.2f \t z:%.2f\n",MPU6050.Ax,MPU6050.Ay,MPU6050.Az);

// 讀取陀螺儀
MPU6050_Read_Gyro(&hi2c2, &MPU6050);
printf("只更新陀螺儀 x:%.2f \t y:%.2f \t z:%.2f\n",MPU6050.Gx,MPU6050.Gy,MPU6050.Gz);

// 讀取溫度
MPU6050_Read_Temp(&hi2c2, &MPU6050);
printf("只更新溫度 %.2f\n",MPU6050.Temperature);

stm32cubemx配置mpu6050——10分鐘0基礎(chǔ)到靈活使用

下面解讀加速度參數(shù)含義

加速度:加速度計(jì)可以測量物體在三維空間中的加速度,單位通常是m/s2。MPU6050能夠在三個(gè)軸上分別測量出物體的加速度。當(dāng)物體處于靜止?fàn)顟B(tài)時(shí),加速度計(jì)會(huì)受到重力作用而顯示一個(gè)9.8m/s2的常數(shù)值。當(dāng)物體發(fā)生運(yùn)動(dòng)時(shí),加速度計(jì)會(huì)顯示物體在各軸上的加速度變化。

此處桌上平放著mpu6050,因此測出來xy方向加速度幾乎為0,z方有一個(gè)g的重力加速度,也就是9.8m/s2。(顯示1.12而不是1,是因?yàn)槲覜]有真正放水平)

什么還是不懂?好吧,真拿你沒辦法,我建立了一個(gè)簡單工程,以供參考使用。就在文末的文件里面。

未若頭發(fā)因風(fēng)起

此文旨在最快的使用出來mpu6050,極具功利性,說真的我并不喜歡這樣的速通,他剝奪了一步步征服mpu6050模塊所帶來的暢快和成就,以及通過閱讀數(shù)據(jù)手冊來掌握模塊的能力。

如果根據(jù)本博客順利調(diào)試出來mpu6050,筆者希望你能明白自己并沒有真正掌握mpu6050,它的通信時(shí)許、寄存器配置等對你來說,都是不明所以的,這些都要讀者根據(jù)數(shù)據(jù)手冊和他人的教程逐個(gè)攻破。戒驕戒躁!

配套資源,0積分免費(fèi)下載文章來源地址http://www.zghlxwxcb.cn/news/detail-436282.html

到了這里,關(guān)于stm32cubemx配置mpu6050——10分鐘0基礎(chǔ)到靈活使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • STM32MPU6050角度的讀?。⊿TM32驅(qū)動(dòng)MPU6050)

    STM32MPU6050角度的讀取(STM32驅(qū)動(dòng)MPU6050)

    注:文末附STM32驅(qū)動(dòng)MPU6050代碼工程鏈接,需要的讀者請自取。 MPU6050是一款集成了三軸陀螺儀和三軸加速度計(jì)的傳感器芯片,由英國飛利浦半導(dǎo)體(現(xiàn)為恩智浦半導(dǎo)體)公司生產(chǎn)。它通過電子接口(如I2C或SPI)與微控制器進(jìn)行通信,可用于測量物體的加速度和角速度,廣泛應(yīng)

    2024年02月20日
    瀏覽(23)
  • STM32----MPU6050

    STM32----MPU6050

    前言:最近幾個(gè)月沒有寫文章了,因?yàn)檫@學(xué)期的事情真的有點(diǎn)多,但是想了想,文章還是要更新,總結(jié)自己學(xué)習(xí)的知識(shí),真的很重要!??! MPU6050 是 InvenSense 公司推出的全球首款整合性 6 軸運(yùn)動(dòng)處理組件 ,相較于多組件方案,免除了組合陀螺儀與加速器時(shí)之軸間差的問題,減

    2024年02月15日
    瀏覽(18)
  • 【STM32】STM32學(xué)習(xí)筆記-MPU6050簡介(32)

    【STM32】STM32學(xué)習(xí)筆記-MPU6050簡介(32)

    ?MPU6050是一個(gè)6軸姿態(tài)傳感器,可以測量芯片自身X、Y、Z軸的加速度、角速度參數(shù),通過數(shù)據(jù)融合,可進(jìn)一步得到姿態(tài)角,常應(yīng)用于平衡車、飛行器等需要檢測自身姿態(tài)的場景 ?3軸加速度計(jì)(Accelerometer):測量X、Y、Z軸的加速度 ?3軸陀螺儀傳感器(Gyroscope):測量X、Y、

    2024年01月19日
    瀏覽(29)
  • STM32之MPU6050獲取歐拉角

    STM32之MPU6050獲取歐拉角

    mpu6050 集成了三軸 MEMS 陀螺儀,三軸 MEMS 加速度計(jì),以及一個(gè)可擴(kuò)展的數(shù)字運(yùn)動(dòng)處理器 DMP(Digital Motion Processor)。輔助I2C接口可以連接一個(gè)第三方的數(shù)字傳感器,比如磁力計(jì)。擴(kuò)展了磁力計(jì)之后就可以通過其主要I2C接口輸出一個(gè) 9 軸的信號(否則只能輸出一個(gè)6軸的信號)。

    2023年04月20日
    瀏覽(14)
  • STM32單片機(jī)入門學(xué)習(xí)筆記——MPU6050

    STM32單片機(jī)入門學(xué)習(xí)筆記——MPU6050

    筆記整理自B站UP主江科大自化協(xié)教程《[10-2] MPU6050簡介_嗶哩嗶哩_bilibili》,所用單片機(jī)也為教程推薦單片機(jī)。 如果芯片里再集成一個(gè)3軸的磁場傳感器,測量XYZ軸的磁場強(qiáng)度,那就叫做9軸姿態(tài)傳感器,如果再集成一個(gè)氣壓傳感器,測量氣壓大小,那就叫做10軸姿態(tài)傳感器,一

    2024年02月08日
    瀏覽(47)
  • STM32外設(shè)系列—MPU6050角度傳感器

    STM32外設(shè)系列—MPU6050角度傳感器

    ?? 文章作者:二土電子 ?? 關(guān)注公眾號獲取更多資料! ?? 期待大家一起學(xué)習(xí)交流! ??MPU6050是由InvenSense公司生產(chǎn)的全球首款整合性六軸運(yùn)動(dòng)處理模塊,它可以實(shí)時(shí)獲取運(yùn)動(dòng)物體的在三維坐標(biāo)系內(nèi)的偏轉(zhuǎn)角度,如圖所示。 ??其中roll為繞X軸偏轉(zhuǎn)的角度,pitch為繞Y軸偏轉(zhuǎn)

    2024年02月03日
    瀏覽(25)
  • STM32軟件I2C驅(qū)動(dòng)MPU6050

    STM32軟件I2C驅(qū)動(dòng)MPU6050

    這里沒有什么復(fù)雜的地方,采用MPU6050的現(xiàn)成模塊.模塊的SCL接B10,SDA接B11,這里連接了一個(gè)OLED顯示屏,用于顯示獲取到的數(shù)據(jù). 注意:這里使用的模塊自帶上拉電阻 首先在工程目錄里創(chuàng)建: \\\"MyI2C.h\\\"和\\\"MyI2C.c\\\"文件,用于軟件驅(qū)動(dòng)I2C. \\\"MPU6050.h\\\",\\\"MPU6050.c\\\"和\\\"MPU6050Reg.h\\\"文件,用于MPU6050的驅(qū)動(dòng). 在

    2024年02月15日
    瀏覽(22)
  • 【stm32】軟件I2C讀寫MPU6050

    【stm32】軟件I2C讀寫MPU6050

    概況 首先建立通信層的.c和.h模塊 在通信層里寫好I2C底層的GPIO初始化 以及6個(gè)時(shí)序基本單元 起始、終值、發(fā)送一個(gè)字節(jié)、接收一個(gè)字節(jié)、發(fā)送應(yīng)答、接收應(yīng)答 寫好I2C通信層之后,再建立MPU6050的.c和.h模塊 基于I2C通信的模塊,來實(shí)現(xiàn)指定地址讀、指定地址寫 再實(shí)現(xiàn)寫寄存器對

    2024年04月26日
    瀏覽(19)
  • STM32--MPU6050與I2C外設(shè)

    STM32--MPU6050與I2C外設(shè)

    在51單片機(jī)專欄中,用過I2C通信來進(jìn)行實(shí)現(xiàn)AT24C02的數(shù)據(jù)存儲(chǔ); 里面介紹的是 利用程序的編程來實(shí)現(xiàn)I2C的時(shí)序 ,進(jìn)而實(shí)現(xiàn)AT24C02與單片機(jī)之間的關(guān)系連接; 本章將介紹使用I2C的硬件外設(shè)來實(shí)現(xiàn)I2C通信,和介紹MPU6050,利用I2C通信實(shí)現(xiàn)STM32對MPU6050的控制. I2C通信軟件實(shí)現(xiàn)程序鏈接

    2024年02月11日
    瀏覽(28)
  • 【STM32】STM32學(xué)習(xí)筆記-軟件I2C讀寫MPU6050(33)

    【STM32】STM32學(xué)習(xí)筆記-軟件I2C讀寫MPU6050(33)

    I2C(Inter-Integrated Circuit)總線 是一種由NXP(原PHILIPS)公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。多用于主控制器和從器件間的主從通信,在小數(shù)據(jù)量場合使用,傳輸距離短,任意時(shí)刻只能有一個(gè)主機(jī)等特性。 串行的 8 位雙向數(shù)據(jù)傳輸位速率在標(biāo)準(zhǔn)模式下可

    2024年01月21日
    瀏覽(42)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包