深圳市航顺芯片技术研发有限公司
直播中

李涛

7年用户 1416经验值
私信 关注
[问答]

请问如何去编写基于stm32的跑马灯程序呢

请问如何去编写基于STM32的跑马灯程序呢?

回帖(1)

董方帅

2021-10-25 15:14:11
  /*在led.h文件编写如下代码:*/
  #ifndef _led_H_
  #define _led_H_
  #include “sys.h”
  /*GPIO的绑定*/
  #define led0 PFout(9) //DS0
  #define led1 PFout(10) //DS1
  /*初始化*/
  void led_Init(void);
  #endif
  /*在led.c文件编写如下代码:*/
  #include “led.h”
  /*初始化*/
  void led_Init(void){
  GPIO_InitTypeDef GPIO_InitStruct;
  //时钟使能
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);
  //GPIOF9,F10初始化设置
  GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;//LED0和LED1对应的IO口
  GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
  GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;//推挽输出
  GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;//上拉
  GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;//100Mz
  GPIO_Init(GPIOF,&GPIO_InitStruct);//初始化GPIO
  //设置为高电平
  GPIO_SetBits(GPIOF,GPIO_Pin_9 | GPIO_Pin_10);//GPIOF9,F10设置高,灯灭
  }
  /*在 main 函数里面编写如下代码:*/
  #include “led.h”
  int main(void)
  {
  delay_init(168); //初始化延时函数
  LED_Init(); //初始化 LED 端口
  /**下面是通过直接操作库函数的方式实现 IO 控制**/
  while(1)
  {
  GPIO_ResetBits(GPIOF,GPIO_Pin_9); //LED0 对应引脚 GPIOF.9 拉低,亮 等同 LED0=0;
  GPIO_SetBits(GPIOF,GPIO_Pin_10); //LED1 对应引脚 GPIOF.10 拉高,灭 等同 LED1=1;
  delay_ms(500); //延时 500ms
  GPIO_SetBits(GPIOF,GPIO_Pin_9); //LED0对应引脚GPIOF.0拉高,灭 等同LED0=1;
  GPIO_ResetBits(GPIOF,GPIO_Pin_10); //LED1 对应引脚 GPIOF.10 拉低,亮 等同 LED1=0;
  delay_ms(500); //延时 500ms
  }
  }
举报

更多回帖

发帖
×
20
完善资料,
赚取积分