GPIO全稱為General-purpose input/output,通用型之輸入輸出的簡稱,可以供使用者對腳位進行輸入輸出的操作。
單晶片不外乎就是對各個腳位做輸入輸出來控制馬達、接收訊號等,因此我們首先要來認識STM32的腳位。我把STM32F429ZI這塊開發版的腳位分成兩個部分,一個是黑色已經焊好母座的腳位(圖中黑色部分)
另一個是黑色腳位兩側的腳位,目前我的這塊開發版是沒有焊上針腳的,(但我也有看過已經焊上公頭的開發版啦),總之就是將針腳分成內側與外側兩個部分。
外側的腳位比較簡單,直接翻到板子的背面就可以看到每個腳位的編號了,而內側的腳位名稱需要查表,看的是紅色箭頭所標示的名稱,未標示的為Arduino的腳位,因為這塊開發版是一塊兼容Arduino的板子,因此他也寫上了對應到Arduino的腳位。
例如CN9的1號腳位名稱為PA3
這個檔案就是設定腳位配置的圖形化介面,在左側檔案管理的地方找到filename.ioc(filename為專案名稱),點擊兩下就會打開,過程有可能要一點時間
打開後一出現的就是STM32F429ZI單晶片的樣子啦,我們可以看到他總共有144個腳位(你可以數數看,不過我已經幫你數玩了啦~)在這裡我們就可以針對這144個腳位設定他的功能。
右下角的放大鏡可以輸入腳位名稱搜尋,例如輸入PB8對應到的腳位就會閃黑色,不要懷疑就是這個腳位了!
點擊選擇GPIO_Output這個模式,就順利的將這個腳位設為輸出模式了。如果想要復原,則可以選擇Reset_State這個模式,這也有可能需要一點時間,看到腳位就會變綠色就代表成功設定完啦~
只要有更動,且還沒有儲存,上面檔案這邊就會顯示" * ",這個時候按ctrl+s就可以順利儲存啦
如果有遇到詢問的視窗都一律按Yes,可以打勾,下次就不會再出現提醒了。
最後回到main.c檔案,往下滑我們可以發現自動新增一些程式碼,這段程式碼的功能是將GPIO初始化,這也就是STMCubeIDE這個IDE好用的地方,可以自動產生代碼,不然這些東西自己打初學者應該會瘋掉吧...
/**
* @brief GPIO Initialization Function
* @param None
* @retval None
*/
static void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOB_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_RESET);
/*Configure GPIO pin : PB8 */
GPIO_InitStruct.Pin = GPIO_PIN_8;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
}
今天簡單的介紹了GPIO以及STM32的腳位要如何查詢,並且將腳位設定成輸出模式。明天我們就來實際的輸出看看吧!