标题: Proteus仿真stm32点亮led灯,灯的两端有高低电平转换显示,可是不亮?暂停却亮了 [打印本页]

作者: 看雪success    时间: 2022-5-1 09:57
标题: Proteus仿真stm32点亮led灯,灯的两端有高低电平转换显示,可是不亮?暂停却亮了
求助,仿真32点灯的时候,灯的两端都会有高低电平转换显示,可是却不亮,我加了电阻,还是不亮。意外的发现只有当暂停演示的时候,led会亮 int main(void)
{        
        delay_init();            //延时函数初始化         
        LED_Init();                          //初始化与LED连接的硬件接口
        while(1)
        {
                LED0=1;
                LED1=1;
                delay_ms(300);         //延时300ms
                LED0=0;
                LED1=0;
                delay_ms(300);        //延时300ms
        }
}
void LED_Init(void)
{

GPIO_InitTypeDef  GPIO_InitStructure;
         
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOA, ENABLE);        
        
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;                                
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                 
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;               
GPIO_Init(GPIOB, &GPIO_InitStructure);                                         
GPIO_SetBits(GPIOB,GPIO_Pin_5);                                                

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;                             
GPIO_Init(GPIOA, &GPIO_InitStructure);                                          
GPIO_SetBits(GPIOA,GPIO_Pin_5);                                                
}

1]EYW8378@DI_ZFJ~[(8QC6.png (94.78 KB, 下载次数: 75)

1]EYW8378@DI_ZFJ~[(8QC6.png

JIJF[5ET}TEOP@0J_BEL{6U.png (99.67 KB, 下载次数: 52)

JIJF[5ET}TEOP@0J_BEL{6U.png

作者: 看雪success    时间: 2022-5-1 10:11
我改变延时时间加到3s的话,电平转换频率还是一样的,求助大佬们
作者: yzpine    时间: 2022-5-1 16:44
LED0=1;
LED1=1;
缺这两个的宏定义
作者: 名字不是重点    时间: 2022-5-1 17:02
贴上完整代码或整天个工程?
作者: wangdanan    时间: 2022-5-1 18:00
暂停时那是亮嘛

作者: yzpine    时间: 2022-5-2 08:41
楼主最好上传完整程序和原理图,这样才好帮你调
作者: 看雪success    时间: 2022-5-2 11:33
yzpine 发表于 2022-5-2 08:41
楼主最好上传完整程序和原理图,这样才好帮你调

下面是led.h
#ifndef __LED_H
#define __LED_H         
#include "sys.h"

#define LED0 PBout(5)// PB5
#define LED1 PAout(5)// PE5       

void LED_Init(void);//初始化

                                                     
#endif


原理图上面就是完整的。
作者: 看雪success    时间: 2022-5-2 11:34
yzpine 发表于 2022-5-1 16:44
LED0=1;
LED1=1;
缺这两个的宏定义

在头文件里定义了

#ifndef __LED_H
#define __LED_H         
#include "sys.h"

#define LED0 PBout(5)// PB5
#define LED1 PAout(5)// PE5       

void LED_Init(void);//初始化

                                                     
#endif
作者: 看雪success    时间: 2022-5-2 11:35
wangdanan 发表于 2022-5-1 18:00
暂停时那是亮嘛

嗯嗯,第二章图是暂停的时候
作者: yzpine    时间: 2022-5-2 20:52
看雪success 发表于 2022-5-2 11:34
在头文件里定义了

#ifndef __LED_H

是让你上传MDK和PROteus工程文件哎
作者: 看雪success    时间: 2022-5-4 09:35
yzpine 发表于 2022-5-2 20:52
是让你上传MDK和PROteus工程文件哎

谢谢哈,我解决了,应该是系统晶振频率的问题,我代码里面用的是正点原子72MHZ的延时函数,在Proteus仿真里面系统晶振频率是8MHZ。于是我没有用正点原子自带的延时函数,而是重新写了一个。
作者: 看雪success    时间: 2022-5-4 09:37
谢谢各位贴友的帮助,问题已解决,是延时函数的问题,




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1