STM32F469I GPIO 基本的閃爍控制
板子上現成的 LED 與按鈕對應的 GPIO 腳位
LED1 | G6 |
---|---|
LED2 | D4 |
LED3 | D5 |
LED4 | K3 |
按键 | A0 |
函式解說
延遲函式,這個內建沒有我們自己弄一個
void delay(){
int i;
for(i=0; i<0xffffff; ++i);
}
如果需要精準的時間延遲可以參考這一篇站內連結
STM32 (F469I) 延遲時間 如何精準的計算
STM32 (F469I) 延遲時間 如何精準的計算
初始化
HAL_Init();
BSP_LED_Init(LED1);
BSP_LED_Init(LED1);
這裡的LED1是對應到這張板子的正面的LED1
使用函式
關燈
HAL_GPIO_WritePin(LED1_GPIO_PORT, LED1_PIN , GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED1_GPIO_PORT, LED1_PIN , GPIO_PIN_RESET);
開燈
HAL_GPIO_WritePin(LED1_GPIO_PORT, LED1_PIN , GPIO_PIN_SET);
HAL_GPIO_WritePin(LED1_GPIO_PORT, LED1_PIN , GPIO_PIN_SET);
範例代碼
int main(void)
{
HAL_Init();
SystemClock_Config();
BSP_LED_Init(LED1);
while(1)
{
delay();
HAL_GPIO_WritePin(LED1_GPIO_PORT, LED1_PIN , GPIO_PIN_RESET);
delay();
HAL_GPIO_WritePin(LED1_GPIO_PORT, LED1_PIN , GPIO_PIN_SET);
}
}
詳細代碼
如果不用內建函式LED1的字樣的話完整的打法是這樣
下面的範例是 B4 ,第一行就是改成4,第二行與第三行的 GPIO 後面改為B
下面的範例是 B4 ,第一行就是改成4,第二行與第三行的 GPIO 後面改為B
uint16_t pin = GPIO_PIN_4;
GPIO_TypeDef* port = GPIOB;
__HAL_RCC_GPIOB_CLK_ENABLE();
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Pin = pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FAST;
HAL_GPIO_Init(port, &GPIO_InitStruct);
HAL_GPIO_WritePin(port, pin, GPIO_PIN_SET);
GPIO所有腳位的位置
查看手冊 STM32F469 Discovery user manual.pdf 這一份文件內的資料
第17頁與18頁有提到對應MCU那些腳位
第17頁與18頁有提到對應MCU那些腳位
背板腳位 | 實際腳位 |
---|---|
D15 | PB8 |
D14 | PB9 |
D13 | PD3 |
D12 | PB14 |
D11 | PB15 |
D10 | PH6 |
D9 | PA7 |
D8 | PG10 |
D7 | PG11 |
D6 | PA6 |
D5 | PA2 |
D4 | PG12 |
D3 | PA1 |
D2 | PG13 |
D1 | PG14 |
D0 | PG9 |
沒有留言:
張貼留言