[原创] NUCLEO-F722ZE下LED灯同步闪动效果的制作

jinglixixi   2017-3-10 14:50 楼主
    在官方提供的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. }


此内容由EEWORLD论坛网友jinglixixi原创,如需转载或用于商业用途需征得作者同意并注明出处

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复