天天看點

配置GPIO作者介紹檢視MCU的GPIOGPIO的工作模式GPIO的輸出頻率GPIO初始化的幾個參數GPIO初始化函數STM32CubeMX配置往期回顧

目錄

  • 作者介紹
  • 檢視MCU的GPIO
  • GPIO的工作模式
  • GPIO的輸出頻率
  • GPIO初始化的幾個參數
  • GPIO初始化函數
  • STM32CubeMX配置
  • 往期回顧

作者介紹

劉懿宵,男,西安工程大學電子資訊學院,2017級大學生。

專業:通信工程

電子郵件:[email protected]

檢視MCU的GPIO

1、通過STM32CubeMX軟體,我們可以很清晰的查找每個引腳所具備的功能。進而友善配置所需要的功能。

2、當你不明白該功能如何使用時,可以根據所給的功能名稱查找技術文檔。如下圖找文檔。

配置GPIO作者介紹檢視MCU的GPIOGPIO的工作模式GPIO的輸出頻率GPIO初始化的幾個參數GPIO初始化函數STM32CubeMX配置往期回顧
配置GPIO作者介紹檢視MCU的GPIOGPIO的工作模式GPIO的輸出頻率GPIO初始化的幾個參數GPIO初始化函數STM32CubeMX配置往期回顧
配置GPIO作者介紹檢視MCU的GPIOGPIO的工作模式GPIO的輸出頻率GPIO初始化的幾個參數GPIO初始化函數STM32CubeMX配置往期回顧

GPIO的工作模式

GPIO_MODE_INPUT // 輸入模式
GPIO_MODE_OUTPUT_PP // 推挽輸出
GPIO_MODE_OUTPUT_OD //開漏輸出
GPIO_MODE_AF_PP //複用推挽
GPIO_MODE_AF_OD //複用開漏
GPIO_MODE_ANALOG //模拟模式
GPIO_MODE_ANALOG_ADC_CONTROL //模數轉換控制
GPIO_MODE_IT_RISING //外部中斷上升沿檢測
GPIO_MODE_IT_FALLING //外部中斷下降沿檢測
GPIO_MODE_IT_RISING_FALLING // 外部中斷上升和下降沿檢測
GPIO_MODE_EVT_RISING //外部事件上升沿檢測
GPIO_MODE_EVT_FALLING //外部事件下降沿檢測
GPIO_MODE_EVT_RISING_FALLING // 外部事件上升和下降沿檢測
           
配置GPIO作者介紹檢視MCU的GPIOGPIO的工作模式GPIO的輸出頻率GPIO初始化的幾個參數GPIO初始化函數STM32CubeMX配置往期回顧

GPIO的輸出頻率

GPIO_SPEED_FREQ_LOW 5MHz的頻率
GPIO_SPEED_FREQ_MEDIUM 5-25MHz頻率
GPIO_SPEED_FREQ_HIGH 25-50MHz頻率
GPIO_SPEED_FREQ_VERY_HIGH 50-80MHz頻率
GPIO_NOPULL 無上拉和下拉電阻
GPIO_PULLUP 上拉電阻
GPIO_PULLDOWN 下拉電阻
           
配置GPIO作者介紹檢視MCU的GPIOGPIO的工作模式GPIO的輸出頻率GPIO初始化的幾個參數GPIO初始化函數STM32CubeMX配置往期回顧

GPIO初始化的幾個參數

uint32_t Pin; 指定引腳号
uint32_t Mode; 指定模式
uint32_t Pull; 上下拉選擇或都不選擇
uint32_t Speed;指定引腳頻率
uint32_t Alternate; 是否複用引腳
配置完以上參數後,再調用初始化函數:
HAL_GPIO_Init(GPIO_TypeDef *GPIOx,GPIO_InitTypeDef *GPIO_Init)
即可完成某引腳号的配置。
           
配置GPIO作者介紹檢視MCU的GPIOGPIO的工作模式GPIO的輸出頻率GPIO初始化的幾個參數GPIO初始化函數STM32CubeMX配置往期回顧
配置GPIO作者介紹檢視MCU的GPIOGPIO的工作模式GPIO的輸出頻率GPIO初始化的幾個參數GPIO初始化函數STM32CubeMX配置往期回顧

GPIO初始化函數

void MX_GPIO_Init(void)
{

  GPIO_InitTypeDef GPIO_InitStruct = {0};

  /* GPIO Ports Clock Enable */
  /*GPIO端口時鐘啟用*/
  __HAL_RCC_GPIOC_CLK_ENABLE();

  /*Configure GPIO pin Output Level */
  /*配置GPIO引腳輸出電平*/
  HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);

  /*Configure GPIO pin : PtPin */
  /*配置GPIO pin : PtPin */
  GPIO_InitStruct.Pin = LED_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(LED_GPIO_Port, &GPIO_InitStruct);

}
           
配置GPIO作者介紹檢視MCU的GPIOGPIO的工作模式GPIO的輸出頻率GPIO初始化的幾個參數GPIO初始化函數STM32CubeMX配置往期回顧

STM32CubeMX配置

配置GPIO作者介紹檢視MCU的GPIOGPIO的工作模式GPIO的輸出頻率GPIO初始化的幾個參數GPIO初始化函數STM32CubeMX配置往期回顧
配置GPIO作者介紹檢視MCU的GPIOGPIO的工作模式GPIO的輸出頻率GPIO初始化的幾個參數GPIO初始化函數STM32CubeMX配置往期回顧
配置GPIO作者介紹檢視MCU的GPIOGPIO的工作模式GPIO的輸出頻率GPIO初始化的幾個參數GPIO初始化函數STM32CubeMX配置往期回顧
配置GPIO作者介紹檢視MCU的GPIOGPIO的工作模式GPIO的輸出頻率GPIO初始化的幾個參數GPIO初始化函數STM32CubeMX配置往期回顧
配置GPIO作者介紹檢視MCU的GPIOGPIO的工作模式GPIO的輸出頻率GPIO初始化的幾個參數GPIO初始化函數STM32CubeMX配置往期回顧

往期回顧

2021物聯網開發學習自學曆程記錄彙總