当前位置: 首页 > news >正文

【问题排查流程总结】tmd2635模块开发中断异常,排查心得

现在复盘发现,我在定位问题有严重错误:对于不是很容易定位原因的问题,需要我从头到尾进行排查,而不是东看看,西看看。

1.背景信息:由于项目需要,本人负责tmd2635传感器模块开发,利用传感器完成TWS耳机的出入耳检测功能。

首先是拿到demo样机之后,调节tmd2635模块使用的i2c通信。通过封装好的tonly i2c接口,来读写chip ID寄存器ID号,如果读取成功,则i2c read没有问题,同理测试i2c write操作。

2.中断异常问题:传感器中断触发异常,用手捏着耳机会不断触发中断(异常),耳机入耳只触发一次中断(正常),耳机出耳对着空气也只触发一次中断(正常)。

该传感器中断方式配置是:第二种–基于状态触发
在这里插入图片描述

3.定位问题:本人卡在定位问题好几天,连珍贵的周末休息时间都拿来排查问题,还是没有找到真正原因。在中断函数里排查,发现clear_interrupt();或clear_interrupt_flag位置也对中断触发结果有影响,其实这只是表面原因,并不是根本原因

4.问题真正原因:是设定的阈值,在驱动code里面被改动了,导致写入阈值寄存器的值并不是我们预期所设定的值,导致中断触发异常情况。

5.解决问题:只需要把下面代码注释起来,就保障写入寄存器的值是符合我预期的值。

6.结果验证:最后验证结果符合我预期,tmd2635的中断触发正常,异常问题已经解决。

在这里插入图片描述

现在复盘发现,我在定位问题有严重错误:对于不是很容易定位原因的问题,需要我从头到尾进行排查,而不是东看看,西看看

http://www.dtcms.com/a/280038.html

相关文章:

  • python技巧:使用pyvisa控制仪器;安装NI-VISA等visa库;导入pyvisa并创建资源管理器;打开和使用仪器
  • 【 Cache 写策略学习笔记】
  • 编程项目选择思考点以及项目包装的关键点
  • linux系统------LVS+KeepAlived+Nginx高可用方案
  • 优雅的Java:01.数据更新如何更优雅
  • Rocky Linux 9 源码包安装php8
  • 基于按键开源MultiButton框架深入理解代码框架(一)(指针的深入理解与应用)
  • 开源AI Agent开发平台Dify源码剖析系列(二)
  • HTTP 协议
  • 微信小程序进度条cavans
  • 【电脑】显卡(GPU)的基础知识
  • Golang Channel与协程的完美配合指南
  • CAU数据挖掘 第五章 聚类问题
  • vscode里面怎么配置ssh步骤
  • Python+Selenium自动化爬取携程动态加载游记
  • python实现自动化sql布尔盲注(二分查找)
  • js最简单的解密分析
  • 分支战略论:Git版本森林中的生存法则
  • document.documentElement详解
  • Webshell连接工具原理
  • 渗透笔记1-4
  • html js express 连接数据库mysql
  • 【算法训练营Day12】二叉树part2
  • 进程---基础知识+命令+函数(fork+getpid+exit+wait+exec)
  • 100道K8S面试题
  • LVS初步学习
  • google浏览器::-webkit-scrollbar-thumb设置容器滚动条滑块不生效
  • langflow搭建带记忆功能的机器人
  • 【React Native】环境变量和封装 fetch
  • Knife4j快速入门