找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3015|回复: 11
收起左侧

Proteus仿真stm32点亮led灯,灯的两端有高低电平转换显示,可是不亮?暂停却亮了

[复制链接]
ID:1023077 发表于 2022-5-1 09:57 | 显示全部楼层 |阅读模式
求助,仿真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
JIJF[5ET}TEOP@0J_BEL{6U.png
回复

使用道具 举报

ID:1023077 发表于 2022-5-1 10:11 | 显示全部楼层
我改变延时时间加到3s的话,电平转换频率还是一样的,求助大佬们
回复

使用道具 举报

ID:493026 发表于 2022-5-1 16:44 | 显示全部楼层
LED0=1;
LED1=1;
缺这两个的宏定义
回复

使用道具 举报

ID:824490 发表于 2022-5-1 17:02 | 显示全部楼层
贴上完整代码或整天个工程?
回复

使用道具 举报

ID:677275 发表于 2022-5-1 18:00 | 显示全部楼层
暂停时那是亮嘛
回复

使用道具 举报

ID:493026 发表于 2022-5-2 08:41 | 显示全部楼层
楼主最好上传完整程序和原理图,这样才好帮你调
回复

使用道具 举报

ID:1023077 发表于 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


原理图上面就是完整的。
回复

使用道具 举报

ID:1023077 发表于 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
回复

使用道具 举报

ID:1023077 发表于 2022-5-2 11:35 | 显示全部楼层

嗯嗯,第二章图是暂停的时候
回复

使用道具 举报

ID:493026 发表于 2022-5-2 20:52 | 显示全部楼层
看雪success 发表于 2022-5-2 11:34
在头文件里定义了

#ifndef __LED_H

是让你上传MDK和PROteus工程文件哎
回复

使用道具 举报

ID:1023077 发表于 2022-5-4 09:35 | 显示全部楼层
yzpine 发表于 2022-5-2 20:52
是让你上传MDK和PROteus工程文件哎

谢谢哈,我解决了,应该是系统晶振频率的问题,我代码里面用的是正点原子72MHZ的延时函数,在Proteus仿真里面系统晶振频率是8MHZ。于是我没有用正点原子自带的延时函数,而是重新写了一个。
回复

使用道具 举报

ID:1023077 发表于 2022-5-4 09:37 | 显示全部楼层
谢谢各位贴友的帮助,问题已解决,是延时函数的问题,
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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