正點原子阿波羅STM32F429IGT6移植zephyr rtos(四)---在獨立的應用工程里使用MPU6050

硬件平臺:正點原子阿波羅STM32F429IGT6

zephyr版本:Zephyr version 4.2.0

開發環境:wsl ubuntu 24.4

前景提要:

正點原子阿波羅STM32F429IGT6移植zephyr rtos(三)---創建一個獨立的應用工程-CSDN博客

一.修改app.overlay

app.overlay是board設備樹的覆寫文件·,你可以在app.overlay里邊對dts文件內容進行追加,修改,刪除。在文件中添加代碼

/** Copyright (c) 2019 Nordic Semiconductor ASA** SPDX-License-Identifier: Apache-2.0*/
&i2c1 {mpu6050@68 {compatible = "invensense,mpu6050";reg = <0x68>;status = "okay";int-gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;};
};

二.修改prj.conf

文件中添加代碼,啟用I2C,傳感器模塊和MPU6050模塊

# 啟用 I2C 和 MPU6050 驅動
CONFIG_I2C=y
CONFIG_SENSOR=y
CONFIG_MPU6050=y
CONFIG_MPU6050_TRIGGER_NONE=y
CONFIG_CBPRINTF_FP_SUPPORT=y

三.修改main.c

mian.c要修改的內容就是MPU6050示例代碼里邊的內容,文件地址:/home/user/zephyrproject/zephyr/samples/sensor/mpu6050/src/main.c

/** Copyright (c) 2019 Nordic Semiconductor ASA** SPDX-License-Identifier: Apache-2.0*/#include <zephyr/kernel.h>
#include <zephyr/device.h>
#include <zephyr/drivers/sensor.h>
#include <stdio.h>static const char *now_str(void)
{static char buf[16]; /* ...HH:MM:SS.MMM */uint32_t now = k_uptime_get_32();unsigned int ms = now % MSEC_PER_SEC;unsigned int s;unsigned int min;unsigned int h;now /= MSEC_PER_SEC;s = now % 60U;now /= 60U;min = now % 60U;now /= 60U;h = now;snprintf(buf, sizeof(buf), "%u:%02u:%02u.%03u",h, min, s, ms);return buf;
}static int process_mpu6050(const struct device *dev)
{struct sensor_value temperature;struct sensor_value accel[3];struct sensor_value gyro[3];int rc = sensor_sample_fetch(dev);if (rc == 0) {rc = sensor_channel_get(dev, SENSOR_CHAN_ACCEL_XYZ,accel);}if (rc == 0) {rc = sensor_channel_get(dev, SENSOR_CHAN_GYRO_XYZ,gyro);}if (rc == 0) {rc = sensor_channel_get(dev, SENSOR_CHAN_DIE_TEMP,&temperature);}if (rc == 0) {printf("[%s]:%g Cel\n""  accel %f %f %f m/s/s\n""  gyro  %f %f %f rad/s\n",now_str(),sensor_value_to_double(&temperature),sensor_value_to_double(&accel[0]),sensor_value_to_double(&accel[1]),sensor_value_to_double(&accel[2]),sensor_value_to_double(&gyro[0]),sensor_value_to_double(&gyro[1]),sensor_value_to_double(&gyro[2]));} else {printf("sample fetch/get failed: %d\n", rc);}return rc;
}int main(void)
{const struct device *const mpu6050 = DEVICE_DT_GET_ONE(invensense_mpu6050);if (!device_is_ready(mpu6050)) {printf("Device %s is not ready\n", mpu6050->name);return 0;}while (!IS_ENABLED(CONFIG_MPU6050_TRIGGER)) {int rc = process_mpu6050(mpu6050);if (rc != 0) {break;}k_sleep(K_SECONDS(2));}/* triggered runs with its own thread after exit */return 0;
}

?四.編譯燒錄

在app目錄下輸入指令

west build -b stm32f429i_alientek -p

?成功:

west flash

實驗現象:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/917571.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/917571.shtml
英文地址,請注明出處:http://en.pswp.cn/news/917571.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SAP_MMFI模塊-質保金標準解決方案詳解

一、業務背景 在許多企業的采購業務中,尤其是設備采購、工程項目或關鍵物料供應,通常會與供應商約定一筆質保金(或稱保留金)。這筆款項在貨物交付驗收后并不會立即支付,而是會被扣留一段時間(如一年),作為供應商產品質量的保證。 核心業務痛點: 在沒有系統化管理的…

Stanford CS336 assignment1 | Byte-Pair Encoding (BPE) Tokenizer

BPE一、 BPETrain1、 unicode standard and unicode encoding2、 子詞分詞(subword tokenization)3、 BPE的訓練a、 Vocabulary initializationb、 Pre-tokenizationc、 Compute BPE merges4、 train_BPE更多實現上的細節二、 BPETokenizerinit函數from_filesencodedecodeencod…

RockAI 的破壁之戰:Yan 架構如何啃下“端側煉丹”硬骨頭?

過去兩年&#xff0c;AI 模型的發展敘事幾乎被兩大陣營主導&#xff1a;無所不能的云端模型與充滿想象的端側模型。行業曾描繪一個誘人藍圖&#xff1a;隨著輕量化模型能力的提升&#xff0c;AI 終將擺脫云端束縛&#xff0c;在每個人的設備上實現永不離線的貼身智能。然而&…

交叉驗證:原理、作用與在機器學習流程中的位置

交叉驗證&#xff08;Cross-Validation&#xff09;是機器學習中評估模型性能、選擇最優參數和防止過擬合的核心技術。它在整個機器學習流程中扮演著關鍵角色。一、為什么需要交叉驗證&#xff1f;1. 解決訓練/測試劃分的局限性??問題??&#xff1a;隨機單次劃分訓練集/測試…

js怎么判斷一個未申明的變量?

在 JavaScript 中&#xff0c;判斷一個變量是否未聲明&#xff08;未定義&#xff09;需要特別注意&#xff0c;因為直接訪問未聲明的變量會拋出 ReferenceError 錯誤。 最安全的方式是使用 typeof 操作符&#xff0c;因為它對未聲明的變量操作時不會報錯&#xff0c;而是返回 …

C++進階-封裝紅黑樹模擬實現map和set(難度較高)

目錄 1.預備知識 2.初步代碼 3.對紅黑樹實現的代碼進行改造 4.對map和set的改造 5.對RBTree::insert的改造 6.對RBTree::Find函數的改造 7.實現iterator(最重要) 8.實現const_iterator 9.完成set和map的key不能修改 10.實現map的operator[] 11.代碼匯總 12.總結 1.預…

安裝MySQL可視化管理工具DBeaver教程

系統&#xff08;kelin&#xff09;上安裝MySQL可視化管理工具DBeaver教程 背景說明 在國產操作系統麒麟&#xff08;基于Debian/Ubuntu&#xff09;環境下&#xff0c;MySQL數據庫管理常依賴命令行&#xff0c;效率較低且不便于直觀操作。借助 DBeaver 這類跨平臺的圖形化數據…

非機動車亂停放識別準確率↑37%:陌訊多特征融合算法實戰解析

一、行業痛點&#xff1a;非機動車治理的技術瓶頸根據《2023 城市靜態交通治理報告》顯示&#xff0c;國內一線城市非機動車亂停放占用人行道比例超 60%&#xff0c;傳統監控方案存在三大技術難點&#xff1a;遮擋干擾&#xff1a;共享單車與私人電動車堆疊導致目標完整性缺失&…

Eclipse 安裝插件指南

Eclipse 安裝插件指南 引言 Eclipse 是一款強大的集成開發環境(IDE),廣泛應用于Java、C/C++、PHP等多種編程語言。為了提高開發效率,Eclipse 支持通過插件來擴展其功能。本文將詳細介紹如何在Eclipse中安裝插件,幫助您快速提升開發體驗。 插件概述 Eclipse 插件是用于…

區塊鏈 和 一致性哈希的結合

怎么結合呢&#xff1f; 我們先來回顧一下一致性哈希代碼實現里面的結構 // Consistent holds the information about the members of the consistent hash circle. type Consistent struct {mu sync.RWMutex // 讀寫鎖&#xff0c;用于保護并發訪問共享數據config Con…

使用yolo11訓練智慧醫療-孤獨癥兒童行為檢測數據集VOC+YOLO格式7295張34類別步驟和流程

【數據集介紹】數據集中有很多增強圖片&#xff0c;也有很多視頻連續截取圖片請查看圖片預覽數據集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路徑的txt文件&#xff0c;僅僅包含jpg圖片以及對應的VOC格式xml文件和yolo格式txt文件)圖片數量(jpg文件個數)&#xff1a;…

vim 組件 使用pysocket進行sock連接

vim組件實現 以下是使用 Vim 插件架構實現 Python Socket 客戶端的完整方案&#xff0c;支持集成到 Vim 控件并實現雙向通信&#xff1a; ~/.vim/plugin/socket_client.vim" 定義全局命令和快捷鍵 command! -nargs* SocketConnect call s:StartSocketClient(<f-args>…

FFmpeg+javacpp中純音頻播放

FFmpegjavacpp中純音頻播放1. Java Sound播放2、整合音頻信息AudioInfo3、添加ExecutorService執行播放FFmpegjavacppjavacv使用 FFmpegjavacpp中FFmpegFrameGrabber FFmpegjavacpp中仿ffplay播放 JavaCV 1.5.12 API JavaCPP Presets for FFmpeg 7.1.1-1.5.12 API1. Java Soun…

洛谷P1036 [NOIP 2002 普及組] 選數

P1036 [NOIP 2002 普及組] 選數 題目描述 已知 nnn 個整數 x1,x2,??,xnx_1,x_2,\cdots,x_nx1?,x2?,?,xn?&#xff0c;以及 111 個整數 kkk&#xff08;k<nk<nk<n&#xff09;。從 nnn 個整數中任選 kkk 個整數相加&#xff0c;可分別得到一系列的和。例如當 n4n…

Linux學習記錄(八)文件共享

本文記錄在Vmware中啟用文件共享時的一些注意事項&#xff1a;1.提前安裝vmware-tools&#xff0c;可以通過Vmware的虛擬機菜單欄中拿到文件&#xff0c;然后直接運行vmware-install.pl文件進行安裝&#xff1b;也可以通過指令sudo apt-get install open-vm-tools進行安裝。推薦…

洛谷 火燒赤壁 差分/貪心

題目背景曹操平定北方以后&#xff0c;公元 208 年&#xff0c;率領大軍南下&#xff0c;進攻劉表。他的人馬還沒有到荊州&#xff0c;劉表已經病死。他的兒子劉琮聽到曹軍聲勢浩大&#xff0c;嚇破了膽&#xff0c;先派人求降了。孫權任命周瑜為都督&#xff0c;撥給他三萬水軍…

Linux 用戶與組管理全解析

Linux 用戶與組管理一、用戶和組的基本概念 1. 用戶賬號類型 超級用戶&#xff08;root&#xff09;&#xff1a;默認擁有系統最高權限&#xff08;UID0&#xff09;&#xff0c;僅建議用于系統管理與維護&#xff0c;日常操作應使用普通用戶。普通用戶&#xff1a;由管理員創建…

開疆智能ModbusTCP轉Profient網關連接ER機器人配置案例

本案例時西門子1200PLC通過ModbusTCP轉Profinet網關連接埃斯頓機器人的配置案例&#xff0c;網關作為ModbusTCP的客戶端連接機器人。配置過程&#xff1a;首先打開機器人通訊手冊。查詢機器人支持的功能碼及默認IP和端口號打開網關配置軟件“Gateway Configuration Studio”新建…

Docker換源加速(更換鏡像源)詳細教程(2025.3最新可用鏡像,全網最詳細)

文章目錄前言可用鏡像源匯總換源方法1-臨時換源換源方法2-永久換源&#xff08;推薦&#xff09;常見問題及對應解決方案1.換源后&#xff0c;可以成功pull&#xff0c;但是search會出錯補充1.如何測試鏡像源是否可用2.Docker內的Linux換源教程換源速通版&#xff08;可以直接無…

機器學習【三】SVM

本文系統介紹了支持向量機(SVM)的理論與實踐。理論部分首先區分了線性可分與不可分問題&#xff0c;闡述了SVM通過尋找最優超平面實現分類的核心思想&#xff0c;包括支持向量、間隔最大化等關鍵概念。詳細講解了硬間隔與軟間隔SVM的數學原理&#xff0c;以及核函數(線性核、多…