微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > ARM技术讨论 > NUCLEO-F722ZE的LED灯同步闪烁效果制作

NUCLEO-F722ZE的LED灯同步闪烁效果制作

时间:10-02 整理:3721RD 点击:

    在官方提供的GPIO例程中,直接给出了一个基于中断方式的GPIO例程,且进行了多层的封装,这导致很难直接模仿其设计相应功能的GPIO程序,为此在这里以一个LED同步闪动的示例给出直观的使用GPIO口示例以便参考使用。随后将基于该程序扩展出一个驱动OLED屏显示的程序,以检测高主频下对OLED屏显示的影响。

  1. void LED_Init()
  2. {
  3.   GPIO_InitTypeDef  GPIO_InitStruct;
  4.   /* Enable the GPIO_LED Clock */
  5.   //LEDx_GPIO_CLK_ENABLE(Led);
  6.   __HAL_RCC_GPIOB_CLK_ENABLE();
  7.   /* Configure the GPIO_LED pin */
  8.   GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_7|GPIO_PIN_14;
  9.   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  10.   GPIO_InitStruct.Pull = GPIO_NOPULL;
  11.   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  12.   HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  13.   HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0|GPIO_PIN_7|GPIO_PIN_14,GPIO_PIN_RESET);
  14. }
  15. void LED_Toggle()
  16. {
  17.   HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0|GPIO_PIN_7|GPIO_PIN_14);
  18. }

  19. int main(void)
  20. {
  21.   //LED1~LED3  同步闪动效果
  22.        
  23.   /* Enable the CPU Cache */
  24.   CPU_CACHE_Enable();

  25.   HAL_Init();
  26.   /* Configure the system clock to 216 MHz */
  27.   SystemClock_Config();
  28.   /* -1- Initialize LEDs mounted on STM32F722ZE-Nucleo board */
  29.   //BSP_LED_Init(LED1);
  30.    LED_Init();
  31.    /* Infinite loop */
  32.   while (1)
  33.   {
  34.                 LED_Toggle();
  35.                 HAL_Delay(1000);
  36.   }
  37. }

复制代码


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top