接前一篇文章:ICM-20948 Wake on Motion功能开发全过程(6)

探索工作

深入探索

上一回讲到,笔者在InvenSense官网上找到了实现Wake on Motion功能的指导文档。其中主要步骤如下:

本回就来结合文档中的步骤,详细讲解每一步。

(1)第1步 —— 初始化所有配置

注意,文档中提到的寄存器是针对于IAM-20680的,需要将其“对”到ICM-20948中。

IAM-20680手册中的相关内容如下:

而在ICM-20948手册中,与IAM-20680一样,DEVICE_RESET位也是在PWR_MGMT_1寄存器中。如下所示:

当然,两个寄存器的地址有所区别,这一点在写代码的时候需要注意。

这一部分对应的代码如下:

	//Step 1: Initialize all configurationsret = icm20948_reset(icm20948);if (ret != ESP_OK){ESP_LOGE(TAG, "icm20948_reset failed");return ret;}vTaskDelay(10 / portTICK_PERIOD_MS);
esp_err_t icm20948_reset(icm20948_handle_t sensor)
{esp_err_t ret;uint8_t tmp;ret = icm20948_read(sensor, ICM20948_PWR_MGMT_1, &tmp, 1);if (ret != ESP_OK)return ret;tmp |= 0x80; //bit7: DEVICE_RESET

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/85922.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/85922.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/85922.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Dipal D1:数字人时代的全新人机关系形态

在科技不断突破的今天,虚拟与现实之间的界限正变得越来越模糊。Dipal D1 作为全球首款搭载2.5K曲面OLED显示屏的3D AI数字人硬件产品,不仅是一款情感陪伴设备,更是AI、AIGC、动漫文化与情感科技深度融合下的全新交互入口。它代表着“孤独经济”、“创作者经济”和“虚拟互动…

Linux离线编译安装nginx

Linux离线安装nginx 1.切换到root用户 #切换到root用户 su - #退出root用户 exit2.目录操作 #切到根目录 cd / #查看目录 ls #切目录 cd /home/... #到对应的目录下解压3.安装Nginx 在有网络的设备上下载以下文件: Nginx:从 nginx.org/en/download…

Qt PyQt与PySide技术-C++库的Python绑定

Qt PyQt与PySide技术-C库的Python绑定 一、概述二、区别于联系1、PyQt:Riverbank Computing的解决方案a、发展历程b、许可模式c、技术特点 2、PySide:Qt官方的Python绑定a、发展历程b、许可模式c、技术特点 三、对比许可证功能与兼容性社区与维护其他差异…

使用.detach()代替requires=False避免计算图错误

解决对一个对象多次BP更新时造成的RuntimeError: you can only change requires_grad flags of leaf variables.问题_解决对一个对象多次bp更新时造成的问题-CSDN博客 代码中存在一个特征需要参与辅助损失的计算,由于需要反复进行反向传播更新,计算图容易…

linux+docker+ollama+git常用指令

1、Linux命令 新建txt文件:touch xxx.txt 给txt文件夹权限:chmod x xxx.txt 查看日志:tail -f xxx.log / less xxx.log 根据关键字查看日志:grep "error" 文件名 查看端口状态:netstat -an|grep xxxxx 查看…

【八股消消乐】消息队列优化—系统架构设计

😊你好,我是小航,一个正在变秃、变强的文艺倾年。 🔔本专栏《八股消消乐》旨在记录个人所背的八股文,包括Java/Go开发、Vue开发、系统架构、大模型开发、具身智能、机器学习、深度学习、力扣算法等相关知识点&#xff…

WebSocket长连接在小程序中的实践:消息推送与断线重连机制设计

一、引言:为什么需要WebSocket长连接? 传统方案的痛点:HTTP轮询的低效性(高延迟、高资源消耗)小程序场景需求:实时消息推送(如IM、直播弹幕、IoT设备状态同步)技术选型对比&#xf…

MySQL索引使用指南:何时该为字段添加索引?

在MySQL的性能优化中,索引是最常用且有效的手段之一。但“索引不是万能药”——盲目添加索引可能导致写操作变慢、存储空间浪费,甚至引发索引失效问题。本文将结合原理与实战场景,帮你理清​​“何时该用索引”​​的核心判断逻辑。 一、先理…

AI时代关键词SEO优化

内容概要 在人工智能(AI)驱动的时代浪潮下,搜索引擎优化(SEO)正迎来深刻变革,关键词策略已成为流量获取的核心战场。本文将系统剖析AI时代关键词优化的前沿方法,涵盖语义分析的精准研究、用户意…

GO 语言学习 之 代码风格

1. 命名规范 字母数字和下划线组成 以小写字母、大写字母或下划线开头 不允许包含标点符号、运算符、空白字符(空格、TAB、换行)等 采用驼峰命名法 (大驼峰、小驼峰) 见名知义:命名要有实际意义,易读性&am…

【软考高级系统架构论文】论云上自动化运维及其应用

论文真题 云上自动化运维是传统IT运维和 DevOps的延伸,通过云原生架构实现运维的再进化。云上自动化运维可以有效帮助企业降低IT运维成本,提升系统的灵活度,以及系统的交付速度,增强系统的可靠性,构建更加安全、可信、开放的业务平台。 请围绕“云上自动化运维及其应用”…

错误: 程序包androidx.fragment.app不存在 import android

错误: 程序包androidx.fragment.app不存在 import androidx.fragment.app.FragmentActivity; 这个是什么错?dependencies { //implementation fileTree(dir: libs, include: [*.jar]) implementation project(path: :libscan) //noinspection GradleCompatible implementation…

Java UDP Socket 实时在线刷卡扫码POS消费机门禁控制板服务端示例源码

本示例使用的设备&#xff1a;https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.52de2c1bYG0BuO&ftt&id17021194999 一、获取本电脑所有网卡IP public static String getIP() {Enumeration<NetworkInterface> netInterfaces;ArrayList<String>…

MATLAB基础应用精讲-【数模应用】层次分析法(AHP)(附MATLAB和python代码实现)

目录 前言 算法原理 什么是层次分析法(AHP) 注意事项 基本原理 算法步骤 1建立层次结构 2构建判断矩阵 3计算权重向量 4一致性检验 SPSSAU AHP层次分析案例 1、背景 2、理论 3、操作 4、SPSSAU输出结果 5、文字分析 6、剖析 疑难解惑 数据如何录入? 如何…

Macintosh小电脑、小手机 | openKylin最新硬件创意形态首次亮相!

近期&#xff0c;OpenAtom openKylin&#xff08;简称 “openKylin”&#xff09;社区与嘉立创旗下的立创开发板团队展开深度技术合作&#xff0c;成功完成立创・泰山派1开发板与openKylin 2.0操作系统的兼容适配。5月24日&#xff0c;嘉立创“第三届开源硬件星火会”在深圳盛大…

基于Spring Boot的计算机考研交流系统的设计与实现

基于Spring Boot的计算机考研交流系统的设计与实现 随着计算机科学的发展&#xff0c;越来越多的学生选择考研来提高自己的专业水平。然而&#xff0c;考研的过程中&#xff0c;学生们面临着各种问题&#xff0c;如学习资料的获取、交流平台的缺乏等。为了更好地满足这些需求&…

技术逐梦之旅:从C语言到Vue的成长之路

董翔&#xff0c;一个对软件技术充满热忱的00后。从初次在屏幕上敲出"Hello World"的激动&#xff0c;到如今能够独立开发完整Web应用的从容&#xff0c;我的编程之路见证了技术的迭代与自我的蜕变。 作为软件专业的学生&#xff0c;我始终坚信"技术是解决问题…

Qt QMap数据清除测试(验证QMap内存正确释放方法)

环境 Qt C (msvc编译环境) 测试代码 //定义 动子信息 &#xff08;可放在.cpp文件 中&#xff09; struct MoverInfo{uint32_t ID;double PartPosition;uint16_t ModuleID;uint32_t PartID;uint32_t TrackID;uint32_t TrackID2; };//使用Windows任务管理器查看内存使用情况//…

【安全咨询】

安全咨询服务是一个专业领域&#xff0c;旨在帮助个人和组织识别、评估和管理各种安全风险&#xff0c;保护其人员、资产、信息和运营安全。 一、安全咨询 1.1 服务的核心目标 ​识别风险&#xff1a;​​ 发现潜在的、可能对组织或个人造成损害的威胁和漏洞。​评估威胁&am…

vue+elementUI实现固定table超过设定高度显示下拉条

解决方案&#xff1a; 在表格上添加了style"height: px;"和:max-height""&#xff0c;这两个设置共同作用使表格在内容超过 设定高度时显示滚动条配合css使用 高度值可根据实际需求调整 <el-table:data"biddData"style"width: 100%;…