一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

如何通過SPI方式讀取BMI088傳感器數(shù)據(jù)

454398 ? 來源:一板網(wǎng) ? 作者:天南地北客 ? 2020-10-28 16:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

BMI088傳感器是一款六軸傳感器模塊,內(nèi)部帶有一個16位的加速度傳感器模塊和一個16位的陀螺儀模塊。該傳感器支持SPI和I2C接口。在本篇文章中,我們將使用NUCLEO-G070RB開發(fā)板通過SPI方式讀取BMI088傳感器的數(shù)據(jù),并通過串口打印輸出。

所需的組件

● NUCLEO-G070RB開發(fā)板

● YBX-BMI088(SPI)加速度傳感器模塊(淘寶鏈接)

● 連接跳線

● Micro USB線纜

連接方式

以下是NUCLEO-G070RB開發(fā)板與BMI088模塊的連接方式:

BMI088模塊連接到NUCLEO-G070RB的SPI1接口,對應(yīng)的引腳分別是PA5(SCK)、PA6(MISO)和PA7(MOSI),加速度計的片選引腳CS1連接到PB0,陀螺儀的片選引腳CS2連接到PB3。BMI088模塊的VCC連接到+5V引腳,GND引腳連接到NUCLEO-G070RB的任意GND引腳。

代碼

首先我們使用STM32CubeMX工具生成工程文件,根據(jù)硬件連接方式選擇引腳的功能,然后啟用SPI1通訊。SPI1選擇全雙工主機模式(Full-Duplex Master),硬件NSS信號選擇Disable。在參數(shù)設(shè)置中,數(shù)據(jù)位大小選擇8位,MSB優(yōu)先。選擇合適的分頻系數(shù)。在無法進(jìn)行通訊的情況下,可以適當(dāng)降低SPI1外設(shè)的頻率。

生成KEIL工程后,接下來我們需要將BOSCH官方提供的BMI088驅(qū)動集成到工程里面。

首先,將 bmi085.c、bmi085.h、bmi088.c、bmi088.h、bmi08a.c、bmi08g.c、bmi08x_defs.h以及bmi08x.h文件復(fù)制到工程所在的目錄,然后添加到工程中。在bmi08x_defs.h使能以下宏定義來啟用BMI088功能。

#ifndef BMI08X_ENABLE_BMI088

#define BMI08X_ENABLE_BMI088 1

#endif

在main.c文件中包含以下頭文件:

#include “bmi08x.h”

#include “bmi088.h”

然后定義一個bmi08x結(jié)構(gòu)體,該結(jié)構(gòu)體定義了使用的是I2C還是SPI接口,以及讀寫操作所需的函數(shù)指針。

struct bmi08x_dev dev = {

.accel_id = CSB1_Pin,

.gyro_id = CSB2_Pin,

.intf = BMI08X_SPI_INTF,

.read = &stm32_spi_read,//user_spi_read,

.write = &stm32_spi_write,//user_spi_write,

.delay_ms = &HAL_Delay//user_delay_milli_sec

};

接下來,初始化BMI088傳感器,設(shè)置加速計和陀螺儀的量程、帶寬和工作模式等。然后使用以下函數(shù)讀取BMI088的傳感器數(shù)據(jù):

/* Read the sensor data into the sensor data instance */

rslt = bmi08a_get_data(&user_accel_bmi088, &dev);

/* Read the sensor data into the sensor data instance */

rslt = bmi08g_get_data(&user_gyro_bmi088, &dev);

將傳感器數(shù)據(jù)打印輸出至串口:

printf(“x:%d”,user_accel_bmi088.x);

printf(“\t”);

printf(“y:%d”,user_accel_bmi088.y);

printf(“\t”);

printf(“z:%d”,user_accel_bmi088.z);

printf(“\t”);

printf(“x:%d”,user_gyro_bmi088.x);

printf(“\t”);

printf(“y:%d”,user_gyro_bmi088.y);

printf(“\t”);

printf(“z:%d”,user_gyro_bmi088.z);

printf(“\t”);

rslt = bmi08a_get_sensor_temperature(&dev,&bmi08x_sensor_temp);

if (rslt == BMI08X_OK)

{

printf(“Temp:%.3f”, bmi08x_sensor_temp/1000.0);

}

else

{

printf(“BMI088 Get Sensor Temperature Error\n”);

}

printf(“\n”);

輸出結(jié)果

將程序下載到NUCLEO-G070開發(fā)板中,運行程序,串口監(jiān)視器將顯示接收到的數(shù)據(jù):

編輯:hfy

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

    關(guān)注

    2566

    文章

    53008

    瀏覽量

    767507
  • 陀螺儀
    +關(guān)注

    關(guān)注

    44

    文章

    848

    瀏覽量

    100031
  • 加速度傳感器
    +關(guān)注

    關(guān)注

    12

    文章

    479

    瀏覽量

    55853
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    TLE9879 SSC模塊與傳感器進(jìn)行三線SPI通信問題求解

    我咨詢一下,我在用TLE9879芯片SSC模塊與MT6501傳感器進(jìn)行SPI通信時,我現(xiàn)在遇到了一個問題: 在發(fā)出讀取指令和寄存地址后,MTSR發(fā)常高進(jìn)行
    發(fā)表于 07-15 07:42

    使用Hal庫的SPI讀取磁邊傳感器導(dǎo)致STM32G4無法運行怎么解決?

    使用 HAL庫 STM32G431 + SPI ,讀取磁邊傳感器系統(tǒng)運行一會直接卡死,使用調(diào)試功能最后發(fā)現(xiàn)卡死在if ((__HAL_SPI_GET_FLAG(hspi,
    發(fā)表于 03-14 08:24

    ADS1278通過SPI通信協(xié)議讀取轉(zhuǎn)換數(shù)據(jù)時遇到的疑問求解

    我用的是TI的ADS1278進(jìn)行六通道電壓同步采樣,工作在SPI的TDM,離散數(shù)據(jù)模式。在通過SPI通信協(xié)議讀取轉(zhuǎn)換
    發(fā)表于 01-14 06:31

    ADS1118通過SPI讀取內(nèi)部溫度傳感器發(fā)現(xiàn)讀取的溫度比實際環(huán)境溫度要高出4-5℃,是什么原因?qū)е碌哪兀?/a>

    我目前正在使用ADS1118這個芯片,通過SPI讀取內(nèi)部溫度傳感器發(fā)現(xiàn)讀取的溫度比實際環(huán)境溫度要高出4-5℃,請問這個可能是什么原因?qū)е碌?/div>
    發(fā)表于 12-20 08:01

    請問ADS8685IPWR如何通過SPI讀取數(shù)據(jù)?

    請問哪個是通過SPI 讀取 數(shù)據(jù)的寄存?謝謝
    發(fā)表于 11-22 06:31

    實現(xiàn)MCU與傳感器的通信方式

    在現(xiàn)代電子系統(tǒng)中,微控制單元(MCU)與傳感器的通信是實現(xiàn)智能控制和數(shù)據(jù)采集的基礎(chǔ)。隨著技術(shù)的發(fā)展,MCU與傳感器之間的通信方式也在不斷進(jìn)
    的頭像 發(fā)表于 11-01 13:43 ?1061次閱讀

    如何通過tlv320aic3206 spi接口讀取mic接口的數(shù)據(jù),然后將讀取到的數(shù)據(jù)在發(fā)給耳機?

    求幫助!?。?!我現(xiàn)在使用的音頻芯片是tlv320aic3206,我想通過arm芯片spi接口讀取mic接口的數(shù)據(jù),然后將讀取到的
    發(fā)表于 10-24 07:36

    傳感器數(shù)據(jù)怎么傳到云平臺

    傳感器數(shù)據(jù)傳到云平臺,通??梢?b class='flag-5'>通過以下幾種方式實現(xiàn): 1. 直接連接 網(wǎng)絡(luò)接口 :傳感器可以通過
    的頭像 發(fā)表于 09-07 10:59 ?4298次閱讀

    LM95071-Q1SPI/MICROWIRE 13位帶符號溫度傳感器數(shù)據(jù)

    電子發(fā)燒友網(wǎng)站提供《LM95071-Q1SPI/MICROWIRE 13位帶符號溫度傳感器數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 08-14 10:53 ?0次下載
    LM95071-Q1<b class='flag-5'>SPI</b>/MICROWIRE 13位帶符號溫度<b class='flag-5'>傳感器</b><b class='flag-5'>數(shù)據(jù)</b>表

    LM95071 SPI/MICROWIRE 13位帶符號溫度傳感器數(shù)據(jù)

    電子發(fā)燒友網(wǎng)站提供《LM95071 SPI/MICROWIRE 13位帶符號溫度傳感器數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 08-14 10:46 ?0次下載
    LM95071 <b class='flag-5'>SPI</b>/MICROWIRE 13位帶符號溫度<b class='flag-5'>傳感器</b><b class='flag-5'>數(shù)據(jù)</b>表

    LM74 SPI/Microwire12位溫度傳感器數(shù)據(jù)

    電子發(fā)燒友網(wǎng)站提供《LM74 SPI/Microwire12位溫度傳感器數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 08-14 09:50 ?0次下載
    LM74 <b class='flag-5'>SPI</b>/Microwire12位溫度<b class='flag-5'>傳感器</b><b class='flag-5'>數(shù)據(jù)</b>表

    LM70 SPI/MICROWIRE 10位帶符號數(shù)字溫度傳感器數(shù)據(jù)

    電子發(fā)燒友網(wǎng)站提供《LM70 SPI/MICROWIRE 10位帶符號數(shù)字溫度傳感器數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 08-14 09:28 ?0次下載
    LM70 <b class='flag-5'>SPI</b>/MICROWIRE 10位帶符號數(shù)字溫度<b class='flag-5'>傳感器</b><b class='flag-5'>數(shù)據(jù)</b>表

    TMP125 帶SPI接口的2°C精確數(shù)字溫度傳感器數(shù)據(jù)

    電子發(fā)燒友網(wǎng)站提供《TMP125 帶SPI接口的2°C精確數(shù)字溫度傳感器數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 08-13 10:26 ?0次下載
    TMP125 帶<b class='flag-5'>SPI</b>接口的2°C精確數(shù)字溫度<b class='flag-5'>傳感器</b><b class='flag-5'>數(shù)據(jù)</b>表

    1.5°C精確可編程數(shù)字溫度傳感器,帶SPI?接口數(shù)據(jù)

    電子發(fā)燒友網(wǎng)站提供《1.5°C精確可編程數(shù)字溫度傳感器,帶SPI?接口數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 08-13 10:09 ?0次下載
    1.5°C精確可編程數(shù)字溫度<b class='flag-5'>傳感器</b>,帶<b class='flag-5'>SPI</b>?接口<b class='flag-5'>數(shù)據(jù)</b>表

    驅(qū)動LSM6DS3TR-C實現(xiàn)高效運動檢測與數(shù)據(jù)采集(9)----獲取磁力計數(shù)據(jù)

    本文將介紹如何使用 LIS2MDL 傳感器讀取數(shù)據(jù)。主要步驟包括初始化傳感器接口、驗證設(shè)備ID、配置傳感器
    的頭像 發(fā)表于 08-02 15:47 ?1468次閱讀
    驅(qū)動LSM6DS3TR-C實現(xiàn)高效運動檢測與<b class='flag-5'>數(shù)據(jù)</b>采集(9)----獲取磁力計<b class='flag-5'>數(shù)據(jù)</b>