问答

汇集网友智慧,解决技术难题

21ic问答首页 - 新手小白,问一下按键控制灯的问题

新手小白,问一下按键控制灯的问题

曾小白2024-09-27
回答 +关注 9
8468人浏览 33人回答问题 分享 举报
33 个回答
  • LcwSwust 发表于 2024-9-27 16:40
    可能有BUG,比如程序中让KEY2输出了低电平。
    建议用示波器监测KEY2脚。

    目前听从建议,用了一颗100uf电解电容并在芯片两端,故障在300多次时出现。后续我又把104换成了106,故障出现的概率再次降低,在100-300次左右可能出现一次。现在能否确认是存在干扰导致LED上电自己点亮?
  • AProgrammer 发表于 2024-9-27 16:47
    一个麻烦的办法是2分法注释掉代码,排查出哪行出的问题

    关键是仿真器上使用是正常的,我如果注释代码只能是仿真器来验证,不然每注释一次烧录验证的话芯片消耗太大,板子也收不了一直焊接。我尝试用直流直接驱动芯片,现象正常
  • 一个麻烦的办法是2分法注释掉代码,排查出哪行出的问题
  • 曾小白 发表于 2024-9-27 16:00
    非常感谢,程序上请教了原代码工程师,让他帮重新写了一段控制灯的代码。目前问题仍然存在,只不过上电后 ...

    可能有BUG,比如程序中让KEY2输出了低电平。
    建议用示波器监测KEY2脚。
  • 曾小白 发表于 2024-9-27 16:03
    我设置了IO输出状态,开漏输出,IO口也设置了弱上拉,甚至我试了硬件上接了一颗上拉电阻,仍然存在问题。 ...

    这里说错了,IO口设置了输入,有弱上拉
  • chenczyaa 发表于 2024-9-27 14:47
    没看代码,初步了解,是不是你一开始没有设置IO输出状态?如果亮灯是高,那IO要设成低,不是则反过来。 ...

    我设置了IO输出状态,开漏输出,IO口也设置了弱上拉,甚至我试了硬件上接了一颗上拉电阻,仍然存在问题。我的亮灯是低电平,但是亮灯时IO口电压为3.19V,正常应该仍然是5V,目前还没有搞明白哪里出了问题
  • LcwSwust 发表于 2024-9-27 11:47
    问题:
    1.main里没见到while(1);
    2.KEY_Ptc_DingShi_Scan不知在哪里调用;

    非常感谢,程序上请教了原代码工程师,让他帮重新写了一段控制灯的代码。目前问题仍然存在,只不过上电后点亮的概率变低了很多,我试了三十多次之后自己亮起来了。问一下大佬,还有可能存在什么问题吗?
  • 没看代码,初步了解,是不是你一开始没有设置IO输出状态?如果亮灯是高,那IO要设成低,不是则反过来。
  • 曾小白 发表于 2024-9-27 11:06
    #include //芯片头文件,会根据工程选项自动寻找对应型号头文件

    #define uint8_t  unsigned char

    问题:
    1.main里没见到while(1);
    2.KEY_Ptc_DingShi_Scan不知在哪里调用;

    建议:
    1.即然上电容易出问题,那就在程序开始之处加延时,比如1秒,之后再去检测按键;
    2.输入脚易受干扰,可以程序中判断KEY2低电平持续100ms才认为是低电平,不要判断一次低电平就执行取反;
    也可从硬件上解决,比如加个0.1uf的电容。
  • 曾小白 发表于 2024-9-27 11:06
    #include //芯片头文件,会根据工程选项自动寻找对应型号头文件

    #define uint8_t  unsigned char

    主要就是KEY2  RB7这个,引脚单片机内部已经设置弱上拉

您需要登录后才可以回复 登录 | 注册