找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1914|回复: 1
收起左侧

简单stm32跑马灯程序

[复制链接]
ID:802739 发表于 2020-7-13 23:53 | 显示全部楼层 |阅读模式
这是一个简单实验可以用于了解stm32的一些基本规则,自己可以试着做做,看看自己有没有需要熟悉的过程。本实验通过代码控制开发板上的两个LED:DS0和DS1交替闪烁,实现类似跑马灯的效果

单片机源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"


  5. int main(void)
  6. {       
  7.         delay_init();            //延时函数初始化          
  8.         LED_Init();                          //初始化与LED连接的硬件接口
  9.         while(1)
  10.         {
  11.                 LED0=0;
  12.                 LED1=1;
  13.                 delay_ms(300);         //延时300ms
  14.                 LED0=1;
  15.                 LED1=0;
  16.                 delay_ms(300);        //延时300ms
  17.         }
  18. }


  19. /**
  20. *****************下面注视的代码是通过调用库函数来实现IO控制的方法*****************************************
  21. int main(void)
  22. {

  23.         delay_init();                  //初始化延时函数
  24.         LED_Init();                        //初始化LED端口
  25.         while(1)
  26.         {
  27.                         GPIO_ResetBits(GPIOB,GPIO_Pin_5);  //LED0对应引脚GPIOB.5拉低,亮  等同LED0=0;
  28.                         GPIO_SetBits(GPIOE,GPIO_Pin_5);   //LED1对应引脚GPIOE.5拉高,灭 等同LED1=1;
  29.                         delay_ms(300);                     //延时300ms
  30.                         GPIO_SetBits(GPIOB,GPIO_Pin_5);           //LED0对应引脚GPIOB.5拉高,灭  等同LED0=1;
  31.                         GPIO_ResetBits(GPIOE,GPIO_Pin_5); //LED1对应引脚GPIOE.5拉低,亮 等同LED1=0;
  32.                         delay_ms(300);                     //延时300ms
  33.         }
  34. }

  35. ****************************************************************************************************
  36. ***/


  37.        
  38. /**
  39. *******************下面注释掉的代码是通过 直接操作寄存器 方式实现IO口控制**************************************
  40. int main(void)
  41. {

  42.         delay_init();                  //初始化延时函数
  43.         LED_Init();                        //初始化LED端口
  44.         while(1)
  45.         {
  46.      GPIOB->BRR=GPIO_Pin_5;//LED0亮
  47.            GPIOE->BSRR=GPIO_Pin_5;//LED1灭
  48.                  delay_ms(300);
  49.      GPIOB->BSRR=GPIO_Pin_5;//LED0灭
  50.            GPIOE->BRR=GPIO_Pin_5;//LED1亮
  51.                  delay_ms(300);

  52.          }
  53. }
  54. **************************************************************************************************
  55. **/
复制代码

所有资料51hei提供下载:
跑马灯实验.rar (269.93 KB, 下载次数: 22)
回复

使用道具 举报

ID:349783 发表于 2020-7-16 09:16 来自手机 | 显示全部楼层
你好,我想问一下,那个delay.c等等应该怎么自己
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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