首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >uVision Led灯

uVision Led灯
EN

Stack Overflow用户
提问于 2017-12-09 16:11:16
回答 1查看 190关注 0票数 0

这是我第一次编写mikrokontroler程序,我使用uVison并使用stm32进行编程。

我的引脚上有两个LED灯: PIN_4和PIN_5,还有一个教程,我知道如何眨眼(下面的代码),但我不知道如何让它们闪烁而不是同样的延迟。就像我想让PIN_4延迟100 of,PIN:5引导,延迟50 of。下面的代码是一个Led灯的代码。

代码语言:javascript
复制
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
  /* USER CODE END WHILE */

HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_4); //Toggle the state of pin PC9
  HAL_Delay(100); //delay 100ms     

  }
  /* USER CODE END 3 */

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-09 23:22:42

你有两个选择。

首先,您可以设置一个计时器来计数毫秒。您可以从STMCubeMX为50 for定时器生成代码。然后,在计时器回调函数中,您应该将引脚设置为高或低。

代码语言:javascript
复制
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
    timer_counter++; //50ms

    HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_5);

    if(timer_counter>=2)  //100ms
    {
        HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_4);
        timer_counter = 0;
    }
}

第二个选择是主要的延迟。

代码语言:javascript
复制
/* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
  /* USER CODE END WHILE */
      HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_5); //Toggle the state of pin PB5
      HAL_Delay(50); //delay 50ms     

      HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_4); //Toggle the state of pin PB4
      HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_5); //Toggle the state of pin PB5
      HAL_Delay(50);  // delay 50ms
  }
  /* USER CODE END 3 */

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47730477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档