标题: 初学STM32用proteus仿真8个流水灯循环显示 [打印本页]

作者: SiuCris    时间: 2023-6-15 15:22
标题: 初学STM32用proteus仿真8个流水灯循环显示
最近用keil MDK完成了一个关于用STM32驱动8个LED灯循环点亮的项目由于是初学菜鸟,想记录一下自己的学习历程,还请大家多多指教
  1. #include "stm32f10x.h"

  2. void Delay(unsigned int count)                                                          //延时函数
  3. {
  4.         unsigned int i;
  5.         for(;count!=0;count--)
  6.         {
  7.                 i=5000;
  8.                 while(i--);
  9.         }        
  10. }

  11. void GPIO_LEDInit(void)
  12. {        
  13.         GPIO_InitTypeDef  GPIO_InitStructure;        //初始化变量

  14.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);        //使能LED的GPIOC时钟

  15.                 // 配置 LED灯使用的GPIO引脚
  16.         GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
  17.         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;                                        //推挽输出
  18.         GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;

  19.         GPIO_Init(GPIOC,&GPIO_InitStructure);                                                        //对LED的GPIOC口初始化

  20.         GPIO_SetBits(GPIOC,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);        //关闭所有的LED
  21. }



  22. int main()
  23. {        
  24.   GPIO_LEDInit();                        //初始化LED引脚

  25.         while(1)
  26.         {        
  27.                 GPIO_SetBits(GPIOC,GPIO_Pin_7);        //关7
  28.                 GPIO_ResetBits(GPIOC,GPIO_Pin_0);         //开0
  29.                 Delay(300);                //延时
  30.                 GPIO_SetBits(GPIOC,GPIO_Pin_0);         //关0
  31.                 GPIO_ResetBits(GPIOC,GPIO_Pin_1);         //开1
  32.           Delay(300);                //延时
  33.                 GPIO_SetBits(GPIOC,GPIO_Pin_1);         //关1
  34.                 GPIO_ResetBits(GPIOC,GPIO_Pin_2);         //开2
  35.                 Delay(300);                //延时
  36.                 GPIO_SetBits(GPIOC,GPIO_Pin_2);         //关2
  37.                 GPIO_ResetBits(GPIOC,GPIO_Pin_3);         //开3
  38.                 Delay(300);                //延时               
  39.                 GPIO_SetBits(GPIOC,GPIO_Pin_3);        //关3
  40.                 GPIO_ResetBits(GPIOC,GPIO_Pin_4);         //开4
  41.                 Delay(300);                //延时
  42.                 GPIO_SetBits(GPIOC,GPIO_Pin_4);         //关4
  43.                 GPIO_ResetBits(GPIOC,GPIO_Pin_5);         //开5
  44.           Delay(300);                //延时
  45.                 GPIO_SetBits(GPIOC,GPIO_Pin_5);         //关5
  46.                 GPIO_ResetBits(GPIOC,GPIO_Pin_6);         //开6
  47.                 Delay(300);                //延时
  48.                 GPIO_SetBits(GPIOC,GPIO_Pin_6);         //关6
  49.                 GPIO_ResetBits(GPIOC,GPIO_Pin_7);         //开7
  50.                 Delay(300);                //延时               
  51.         }
  52. }
复制代码

51hei.png (162.62 KB, 下载次数: 123)

proteus搭的仿真电路

proteus搭的仿真电路

作者: darren.chen    时间: 2023-6-26 09:28
proteus可以搭STM32了?
作者: sttt300    时间: 2023-7-10 11:15
感谢楼主!
我搞了半天没搞成功
用楼主的代码,一下就好了
总算可以开始用proteus学STM32了
熟悉了再买块开发板练练
作者: fjc1979    时间: 2023-10-30 09:43
不错的方案




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