ZzuYyuRru 2024-02-10 12:22 采纳率: 25%
浏览 21
已结题

为什么STM32F407ZG在执行跑马灯程序的时候亮了一会儿又不亮了?

程序编译都正常,烧录的时候使用的是 JLINK,Keil 显示完全正常。但是只有 D3的灯是亮的,也就是说单片机没有正常运行。后面有一次我拔掉重连了一下,然后它就开始正常显示跑马灯了,但是过了一会儿它又不亮了,后面再重连也不管用了。我该怎么让它显示跑马灯呢?有没有人能帮忙解答一下

img

#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"

 
int main(void)
{ 
 
    delay_init(168);        
    LED_Init();             

    
    while(1)
    {
    GPIO_ResetBits(GPIOF,GPIO_Pin_9);  
    GPIO_SetBits(GPIOF,GPIO_Pin_10);  
    delay_ms(500);      
    delay_ms(500);              
    GPIO_SetBits(GPIOF,GPIO_Pin_9);      
    GPIO_ResetBits(GPIOF,GPIO_Pin_10);
    delay_ms(500);
    delay_ms(500);
    }
}



  • 写回答

11条回答 默认 最新

  • Java毕设王 2024-02-11 13:14
    关注

    引用讯飞星火
    从你提供的代码来看,你的单片机在烧录后应该能正常运行并显示跑马灯。但是,你提到只有D3的灯是亮的,其他灯不亮,这可能是由于硬件连接问题或者电源问题导致的。

    首先,你需要检查你的硬件连接是否正确。确保所有的LED都正确地连接到单片机上,并且电源电压和电流都在正确的范围内。

    其次,你可以尝试使用调试器来查看程序的运行状态。你可以使用Keil的调试功能,或者使用其他的调试工具,如J-Link等。通过调试器,你可以查看程序的运行状态,包括寄存器的值,内存的状态等,这可以帮助你找到问题的原因。

    最后,如果以上方法都不能解决问题,你可能需要检查你的单片机是否有硬件故障。例如,可能是某个LED的驱动电路有问题,或者是单片机本身的问题。这种情况下,你可能需要更换新的单片机或者LED。

    希望这些建议能帮助你解决问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(10条)

报告相同问题?

问题事件

  • 系统已结题 2月22日
  • 已采纳回答 2月14日
  • 修改了问题 2月10日
  • 创建了问题 2月10日