薛明峰 发表于 2023-8-17 15:36:10

IO中奖及其解决过程感受---遇到了就是赚到了

通过这一段时间的学习,想法很多。手痒的的不行找几个demo动动手。在测试过程中发现一个问题蜂鸣器驱动失效。

解决方法和思考过程:
      思考方向:
            1.程序中寄存器配置错误。
            2.蜂鸣器损坏。
            3.电阻虚焊。
            4.IO共用的复位电路有问题。
            5.主芯片有问题。
       解决过程:
      1.将IO口单态使能,通过外用表测量电阻R87的电压观察蜂鸣器驱动状态。
      
            测量结果是4.68V,拉不低。在程序中设置P54为IO口模式也是一样。
       2.联机仿真观察IO口状态
      
打开IO口观察窗 Debug→All-Ports→发现0x1f P54也是高电平

注意脱机仿真是看不到IO口状态的。
怀疑是不是IO其它复用功能设置了IO口的配置。所以重新写一个最简单的程序进行测试。
运行结果依然如故
排查P54的复用功能已经没有开启任何复用功能了。

思考继续排查软件的难度会越来越大,换个方向排查一下硬件部分。
3.短接一下R48靠近T2基极的部分,可以触发蜂鸣器,说明蜂鸣器和三极管都没有问题。
4.排查共用的复位电路。
把C1去掉测试依然不能驱动蜂鸣器。按REST按键也不能触发蜂鸣器。

5.怀疑是主芯片接触不良。加焊主芯片引脚后问题解决。按复位按键也可以触发蜂鸣器了。
6.再用仿真观察P54口的状态。

在程序中增加LED灯驱动是问了排查IO操作的局部问题还是全局问题。

总结:
       1.要相信科学,在线仿真可以把自己的操作观察的一清二楚。可以很客观的观察到问题的节点。是程序员观察程序底层运作的一双眼睛。
       2.解决问题时,需要平衡问题解决方向的时间复杂度,尽量不要钻牛角尖。
      

               

月光如盐 发表于 2023-8-18 08:44:18

一个账号最好只开一个贴,第二次打卡只需回复原来的贴即可

https://www.stcaimcu.com/data/attachment/forum/202308/06/075641bxd47222d6woe623.png

薛明峰 发表于 2023-8-18 11:35:43

好的

薛明峰 发表于 2023-8-18 12:02:32

我的这个帖子已经移动位置了,可以删除掉它了。

神农鼎 发表于 2023-8-18 13:17:05

这个 P5.4/接了个10uF电容到地,充放电要时间,拉高拉低,没没那么快
页: [1]
查看完整版本: IO中奖及其解决过程感受---遇到了就是赚到了