<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

小熊派Hi3861獲取mpu6050數據在oled屏幕中顯示

聶小生 ? 來源:聶小生 ? 作者:聶小生 ? 2023-08-14 14:39 ? 次閱讀

硬件

開發板:小熊派

主控MCU:Hi3861

接線:

MPU6050:

SCL:IO_01

SDA:IO_00

OLED

SCL:IO_09
SDA:IO_10

效果圖:

wKgaomTXPKKAKOoBAPY6bJ6j_PA966.png運行效果圖

軟件方案:

MPU6050驅動

這部分代碼參考使用小熊派例程代碼

初始化引腳:

GpioInit();

IoSetFunc(WIFI_IOT_IO_NAME_GPIO_0, WIFI_IOT_IO_FUNC_GPIO_0_I2C1_SDA);   // GPIO_0復用為I2C1_SDA
IoSetFunc(WIFI_IOT_IO_NAME_GPIO_1, WIFI_IOT_IO_FUNC_GPIO_1_I2C1_SCL);   // GPIO_1復用為I2C1_SCL
I2cInit(WIFI_IOT_I2C_IDX_1, 400000); /* baudrate: 400kbps */
I2cSetBaudrate(WIFI_IOT_I2C_IDX_1, 400000);

OLED驅動

相關代碼在文末附件中。

在oled.c中初始化引腳:

//初始化
    GpioInit();
    //GPIO_10復用為I2C0_SDA
    IoSetFunc(WIFI_IOT_IO_NAME_GPIO_10, WIFI_IOT_IO_FUNC_GPIO_10_I2C0_SDA);
    //GPIO_9復用為I2C0_SCL
    IoSetFunc(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_IO_FUNC_GPIO_9_I2C0_SCL);
    //baudrate: 400kbps
    I2cInit(WIFI_IOT_I2C_IDX_0, 400000);
    I2cSetBaudrate(WIFI_IOT_I2C_IDX_0, 400000);

在主線程中獲取mpu6050數據,并在oled顯示

// 定義陀螺儀數據
Sensor_Data_TypeDef Sensor_Data;

char array[64]; 

static int task_sensor_entry(void)
{
    float k = 127.0/4200;
    OLED_Init();
    Sensor_Init();
    OLED_Clear();

    while(1)
    {
        //OLED_Show();
        usleep(100000);

        // 讀取數據
        Sensor_Read_Data();
        // 邏輯處理
        printf("Accel[0]:%6d  Accel[1]:%6d  Accel[2]:%6drn", (int)Sensor_Data.Accel[0],(int)Sensor_Data.Accel[1],(int)Sensor_Data.Accel[2]);

        // 顯示實時數據
        memset(array, 0, sizeof(array) - 1);
        sprintf(array, "x:%6d", (int)Sensor_Data.Accel[0]);
        OLED_ShowString(0,0,array,16);
        
        memset(array, 0, sizeof(array) - 1);
        sprintf(array, "y:%6d", (int)Sensor_Data.Accel[1]);
        OLED_ShowString(0,20,array,16);
        OLED_ProcessBar(0,40,(int)((Sensor_Data.Accel[1]+2100)*k));
        OLED_Refresh();
    }

    return 0;
}

static void OC_mpu6050_oled(void)
{

    osThreadAttr_t attr;

    attr.name = "task_main_entry";
    attr.attr_bits = 0U;
    attr.cb_mem = NULL;
    attr.cb_size = 0U;
    attr.stack_mem = NULL;

    attr.stack_size = 2048;
    attr.priority = 25;
    attr.name = "task_sensor_entry";
    
    if (osThreadNew((osThreadFunc_t)task_sensor_entry, NULL, &attr) == NULL)
    {
        printf("Falied to create task_sensor_entry!n");
    }
}

APP_FEATURE_INIT(OC_mpu6050_oled);

相關代碼文件

完整代碼在資源中

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • OLED
    +關注

    關注

    118

    文章

    6025

    瀏覽量

    221713
  • MPU6050
    +關注

    關注

    38

    文章

    304

    瀏覽量

    69969
  • Hi3861
    +關注

    關注

    1

    文章

    58

    瀏覽量

    6250
收藏 人收藏

    評論

    相關推薦

    第6節 Hi3861 OLED屏幕驅動 基于鴻蒙系統

    `` 本帖最后由 jf_39160458 于 2020-10-2 22:37 編輯 Hi3861 OLED驅動Hispark WiFi開發套件又提供一個OLED屏幕,但是鴻蒙源碼
    發表于 10-02 22:33

    【HarmonyOS HiSpark Wi-Fi IoT套件】I2C驅動 Hi3861 驅動OLED屏幕顯示

    ,大家自己下載。(2)設置I2C引腳復用確定i2c引腳,查看原理圖,可以看到OLED屏幕使用到的是I2C0,引腳是GPIO13、GPIO14所以我們需要修改源碼,vendor\hisi\hi
    發表于 10-16 09:26

    DevEco Device Tool 2.1 Beta1 的亮點: Hi3861Windows平臺直接編譯體驗

    DevEco Device Tool迎來了2.1 Beta1,其中的亮點之一是:支持Hi3861開發板的源碼Windows平臺編譯。帶著濃厚的興趣,第一時間做了一次體驗。首先在官網下
    發表于 04-18 09:59

    MPU6050模塊

    下載,公眾號:小白學移動機器人,發送:MPU6050,即可獲得。2.4.1 解決的問題DMP庫的移植(文件已被更改過,更好的移植)MPU6050數據
    發表于 08-09 07:17

    利用小熊派獲取MPU6050六軸原始數據的過程

    摘要:使用小熊派開發板,通過硬件IIC與MPU6050六軸傳感器模塊通信,完成相應寄存器配置,成功獲取陀螺儀、加速度計數據。本問主要講述使用小熊派
    發表于 02-10 07:00

    STM32 MPU6050模塊數據獲取

    下載,公眾號:小白學移動機器人,發送:MPU6050,即可獲得。2.4.1 解決的問題DMP庫的移植(文件已被更改過,更好的移植)MPU6050數據
    發表于 02-10 06:01

    Hi3861潤和開發板+小熊派,智能家居項目

    +華為云IoTDA+Android APP......Haohanyh-HAMOS-ProjectX是我們的一個LiGHTs計劃的部分,目的就是開源我們hi3861上與物聯網(智能家居)上做的探索
    發表于 04-30 00:37

    MPU6050原始數據處理

    我用MPU6050接到小熊派開發版上讀取到加速度原始數據,按照網上說的公式轉換成加速度,加速度基本上都是0附近,要大力快速晃動MPU6050
    發表于 05-17 19:28

    輕量系統:小熊派BearPi-HM Nano(HI3861

    開發板名稱(芯片型號) 小熊派BearPi-HM Nano(HI3861) 芯片架構 CPU頻率 介紹(字數請控制200字以內) 小熊派BearPi-HM Nano外型上延續了三
    發表于 10-19 11:10

    STM32 MPU6050數據獲取、數據處理

    2.4 STM32 MPU6050數據獲取(IIC + DMP)本篇文章主要針對廉價的MPU6050模塊。我們這里完成了MPU6050
    發表于 12-06 12:06 ?33次下載
    STM32 <b class='flag-5'>MPU6050</b><b class='flag-5'>數據</b><b class='flag-5'>獲取</b>、<b class='flag-5'>數據</b>處理

    STM32獲取MPU6050數據

    STM32獲取MPU6050數據
    發表于 12-06 13:06 ?50次下載
    STM32<b class='flag-5'>獲取</b><b class='flag-5'>MPU6050</b><b class='flag-5'>數據</b>

    如何利用小熊派獲取MPU6050六軸原始數據

    摘要:使用小熊派開發板,通過硬件IIC與MPU6050六軸傳感器模塊通信,完成相應寄存器配置,成功獲取陀螺儀、加速度計數據。本問主要講述使用小熊派
    發表于 12-06 14:21 ?15次下載
    如何利用<b class='flag-5'>小熊派</b><b class='flag-5'>獲取</b><b class='flag-5'>MPU6050</b>六軸原始<b class='flag-5'>數據</b>

    K013 基于51/STM32 MPU6050測試 OLED0.96顯示原始數據

    圖五. 接線六.代碼說明1. MPU6050引腳配置2. MPU6050模塊寫數據與命令函數3. MPU6050模塊初始化函數4. MPU6050
    發表于 12-06 16:06 ?29次下載
    K013 基于51/STM32 <b class='flag-5'>MPU6050</b>測試 <b class='flag-5'>OLED</b>0.96<b class='flag-5'>顯示</b>原始<b class='flag-5'>數據</b>

    android 獲取gpio電平值_STM32 MPU6050數據獲取(IIC + DMP)

    2.4 STM32 MPU6050數據獲取(IIC + DMP)本篇文章主要針對廉價的MPU6050模塊。我們這里完成了MPU6050
    發表于 12-06 17:06 ?17次下載
    android <b class='flag-5'>獲取</b>gpio電平值_STM32 <b class='flag-5'>MPU6050</b><b class='flag-5'>數據</b><b class='flag-5'>獲取</b>(IIC + DMP)

    小熊派Hi3861讀取mpu6050數據并在oled顯示

    基于小熊派相關代碼,修改得到的讀取mpu6050數據,并在oled顯示
    發表于 08-14 15:00 ?4次下載
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>