Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1180|回复: 0

问题分解思维

[复制链接]

399

主题

1251

帖子

4020

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4020
发表于 2023-7-14 19:34:19 | 显示全部楼层 |阅读模式
如果把大问题分解成小问题,很多问题解决起来就有迹可循,比较好掌控。
假设系统由四个环节组成,A-->B-->C-->D。而当最终输出D出了问题之后怎么做呢,当然是从ABC挨着捋下来,观察每个环节输出是否正常(可能有时需要借助额外的工具),这样就能搞清楚到底是哪里出了问题。

举个栗子,现在用STM32做个小车,现在小车轮子不转,我们应该怎么调试?
最简单粗暴的方法是把硬件换了,这样学不到什么东西。
可以采用问题分解思维,STM32应该输出一个PWM波到驱动电路板驱动电路板根据PWM波占空比不同转换为电压不同的直流电驱动电机转动。我们要看
1.STM32输出的PWM波正常么(用示波器观察)
2.驱动电路板输出的直流电正常么(示波器或者万用表)
如果1正常,那说明STM32没问题
如果2再正常,那说明驱动电路板没问题,肯定是电机的问题
如果2不正常,我们是不是可以测一下驱动电路板的相关电压,看看哪里不正常,替换掉不正常的部分。
走到这一步,实际你就会维修器件了。

再举一个,假如现在用STM32做超声波测距,显示在显示屏上,现在距离不对,怎么去排查
问题分解,
1.STM32向超声波测距模块发送大于10μs的脉冲
2.超声波测距模块返回一个高电平(时长代表距离)
3.STM32 根据这个电平时长换算为距离
4.STM32把这个距离发送给显示屏,进行显示
调试方法,首先确定4.显示屏显示正常,可以用STM32随便发一个数字给显示屏进行验证。
再确定换算是不是正常3
最后确定1和2,可以用示波器两个通道分别连在STM32的发送端和接收端,观察电平是不是正常,如果不正常,更换测距模块

进一步地,如果一个OLED显示屏显示不正常,是不是只有换屏了,未必!

先尝试调用showPoint函数(显示一个点)在OLED显示屏上显示一个点,如果这个正常,那屏没问题,就是算法的问题
如果显示点都不正常,那就要检查连线了。
连线没问题,再去考虑找个屏替换一下试试。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-6-8 12:33 , Processed in 0.035088 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表