HAL库_流水灯

Posted 1024e

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HAL库_流水灯相关的知识,希望对你有一定的参考价值。

对比标准库的流程使用HAL库编写流水灯

标准库:

1.开时钟

2.初始化GPIOInit结构体

3.调用GPIO_Init(GPIOB, &GPIO_InitStructure) 初始化函数

 1 typedef struct
 2 {
 3   uint16_t GPIO_Pin;             /*!< Specifies the GPIO pins to be configured.
 4                                       This parameter can be any value of @ref GPIO_pins_define */
 5 
 6   GPiospeed_TypeDef GPIO_Speed;  /*!< Specifies the speed for the selected pins.
 7                                      This parameter can be a value of @ref GPIOSpeed_TypeDef */
 8 
 9   GPIOMode_TypeDef GPIO_Mode;    /*!< Specifies the operating mode for the selected pins.
10                                       This parameter can be a value of @ref GPIOMode_TypeDef */
11 }GPIO_InitTypeDef;

HAL流程:

1.开时钟

技术图片

2.从PinOut界面点击引脚,设置GPIO为输出

技术图片

3.再标准库中要手动初始化一个GPIO的结构体,现在CubeMx可以让我们使用图形配置的方式设置这些通用的、繁琐的固定的初始化代码。

从PinOut界面选择了对应的GPIO后按照下面图片上面的方法设置GPIO的模式、速度、上拉和下拉。

 技术图片

 

千万别忘了打开sys下的debug,不然会导致无法第二次下载程序。

技术图片

 

 

 代码:自己写的代码一定要放在每一个 user code begin 和user code end之间,不然放在cubemx中修改了配置再生成工程时后自动删除我们写的代码。

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)   
  {
         HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5);
        HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_5);
        HAL_Delay(600);
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */

 

以上是关于HAL库_流水灯的主要内容,如果未能解决你的问题,请参考以下文章

如何实现F411RE使用HAL库实现IO中断

如何在stm32的hal库uart发送函数怎么用

MPU9250的MPL移植_HAL库(以STM32F103为主控)

STM32-HAL库-UART学习

STM32F4 HAL库开发 --时钟使能和配置

STM32F4 HAL库开发 --时钟使能和配置