目錄
- 作者介紹
- 檢視MCU的GPIO
- GPIO的工作模式
- GPIO的輸出頻率
- GPIO初始化的幾個參數
- GPIO初始化函數
- STM32CubeMX配置
- 往期回顧
作者介紹
劉懿宵,男,西安工程大學電子資訊學院,2017級大學生。
專業:通信工程
電子郵件:[email protected]
檢視MCU的GPIO
1、通過STM32CubeMX軟體,我們可以很清晰的查找每個引腳所具備的功能。進而友善配置所需要的功能。
2、當你不明白該功能如何使用時,可以根據所給的功能名稱查找技術文檔。如下圖找文檔。
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的輸出頻率
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初始化的幾個參數
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初始化函數
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);
}
STM32CubeMX配置
往期回顧
2021物聯網開發學習自學曆程記錄彙總