1. 程式人生 > 實用技巧 >HAL庫_流水燈

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 */