找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3349|回复: 10
打印 上一主题 下一主题
收起左侧

proteus仿真stm32点亮LED不成功

[复制链接]
跳转到指定楼层
楼主
在网上看了其他人的一些帖子
仿真:


单片机程序:
#include "delay.h"

#define LED PBout(5)// PB5

void LED_Init(void)
{
GPIO_InitTypeDef  GPIO_InitStructure;
     
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);     //使能PB,PE端口时钟
   
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;                 //LED0-->PB.5 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;          //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         //IO口速度为50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure);                     //根据设定参数初始化GPIOB.5
GPIO_SetBits(GPIOB,GPIO_Pin_5);                         //PB.5 输出
}

int main()
{
    delay_init();             //延时函数初始化      
    LED_Init();

    while(1)
    {
        LED=0;
        delay_ms(500);
    }
}

实物都能正常运行,但是就是仿真不成功
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:752974 发表于 2021-1-12 14:52 | 只看该作者
电源不能空着,要设定好电压值,如+3.3V或+5V,如果用这样的位带操作,需要包含相应的头文件。另外,二极管应加限流电阻,不然对于实际工作易产生误导。
回复

使用道具 举报

板凳
ID:877522 发表于 2021-9-15 19:36 | 只看该作者
是的  我也是仿真不成功 咋回事
回复

使用道具 举报

地板
ID:94031 发表于 2021-9-15 20:32 | 只看该作者
D2发光二极管要串电阻限流。
回复

使用道具 举报

5#
ID:966354 发表于 2021-9-15 20:37 | 只看该作者
加个电阻限流
回复

使用道具 举报

6#
ID:893765 发表于 2021-9-15 20:46 | 只看该作者
你试一下

5.png (22.74 KB, 下载次数: 78)

5.png

4.png (28.02 KB, 下载次数: 84)

4.png

3.png (30.04 KB, 下载次数: 93)

3.png

2.png (85.28 KB, 下载次数: 100)

2.png

1.png (126.24 KB, 下载次数: 103)

1.png
回复

使用道具 举报

7#
ID:877522 发表于 2021-9-17 13:59 | 只看该作者
我的仿真成功了
回复

使用道具 举报

8#
ID:877522 发表于 2021-9-17 14:01 | 只看该作者
代码如下  可以试下  不行 我在给你分析proteus  仿真文件

  1. #include"stm32f10x_lib.h"                //包含所有的头文件
  2. #include<stdio.h>
  3. //----------------函数声明--------------------
  4. void Delay_MS(u16 dly);
  5. void RCC_Configuration(void);
  6. void GPIO_Configuration(void);

  7. void delay(void)  
  8. {
  9.   int i,j;
  10. for(i=1000;i>0;i--)
  11.   for(j=1000;j>0;j--);
  12. }

  13. void GPIO_Config(void)
  14. {
  15.             GPIO_InitTypeDef  GPIO_InitStructure;   
  16.             RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
  17.             GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6;   
  18.             GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
  19.             GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  20.             GPIO_Init(GPIOB , &GPIO_InitStructure);
  21. }

  22. int main(void)
  23. {  

  24.                 GPIO_Config();
  25.                 // SystemInit();
  26.                   
  27.                 while(1)
  28.                 {
  29.                 GPIO_SetBits(GPIOB,GPIO_Pin_5 ); //点亮PB.5
  30.                      delay();
  31.                 GPIO_ResetBits(GPIOB,GPIO_Pin_5 );//熄灭PB.5
  32.                    delay();
  33.                 GPIO_SetBits(GPIOB,GPIO_Pin_6 );//点亮PB.6
  34.                      delay();
  35.                 GPIO_ResetBits(GPIOB,GPIO_Pin_6 );//熄灭PB.6
  36.                     delay();
  37.                   }

  38. }





  39. // void GPIO_Config(void)                            //GPIO初始配置
  40. //{
  41. //    GPIO_InitTypeDef GPIO_InitStructure;                                     //定义结构体变量
  42. //    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);         //使能GPIOA的时钟
  43. //    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;                 //指定引脚13
  44. //    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //设置输出速率50MHz
  45. //    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;        //推挽输出模式
  46. //    GPIO_Init(GPIOA, &GPIO_InitStructure);                  //初始化外设GPIOx寄存器
  47. //}
  48. //
  49. //#define LED_ON GPIO_SetBits(GPIOA, GPIO_Pin_1)         //端口置1
  50. //#define LED_OFF GPIO_ResetBits(GPIOA, GPIO_Pin_1)            //端口置0
  51. //
  52. //
  53. //int main()
  54. //{
  55. //    GPIO_Config();            //GPIOD_1初始化配置
  56. //    while(1)
  57. //    {
  58. //        LED_ON;                    //点亮
  59. //        Delay_MS(200);        //延时大概几百毫秒
  60. //        LED_OFF;                //熄灭
  61. //        Delay_MS(200);
  62. //    }
  63. //
  64. //}



  65. ////延时函数
  66. //
  67. //void Delay_MS(u16 dly)
  68. //{
  69. //        u16 i,j;
  70. //        for(i=0;i<dly;i++)
  71. //  for(j=200;j>0;j--);
  72. //}
复制代码



回复

使用道具 举报

9#
ID:966186 发表于 2021-9-17 16:24 来自手机 | 只看该作者
SGW2020 发表于 2021-9-17 14:01
代码如下  可以试下  不行 我在给你分析proteus  仿真文件

想问一下 我这个是纯数电 8×8 点阵驱动电路设计,我的图可以进行仿真,但是我用easyPro编写的程序进行仿真后,显示的数字不对是怎么回事啊,求大佬指点一下
下面的是我的原理图和编写的0-9的程序

1631867045943.jpg (1.12 MB, 下载次数: 103)

1631867045943.jpg

1631867023650.jpg (1.13 MB, 下载次数: 89)

1631867023650.jpg
回复

使用道具 举报

10#
ID:824490 发表于 2021-9-18 16:53 | 只看该作者
小小小白。 发表于 2021-9-17 16:24
想问一下 我这个是纯数电 8×8 点阵驱动电路设计,我的图可以进行仿真,但是我用easyPro编写的程序进行仿 ...

纯逻辑线路,也可以通过单步跟踪来调试的:把CLK拿掉,用一个按键代替CLK,按一下一个脉冲。。。。
回复

使用道具 举报

11#
ID:966186 发表于 2021-9-19 11:58 来自手机 | 只看该作者
名字不是重点 发表于 2021-9-18 16:53
纯逻辑线路,也可以通过单步跟踪来调试的:把CLK拿掉,用一个按键代替CLK,按一下一个脉冲。。。。

我和我师兄的仿真图是一样的,他的那个程序导入里面是对的,但是我用他那个程序就不行,不知道是怎么回事
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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