一、基本介紹
/** * @brief Write GPIO Output Data. * @param gpio_periph: GPIO port peripheral, Select from enum @ref gpio_peripheral_define. * @param pinx: GPIO port pin, Select from enum @ref gpio_pin_define. * @param val: Data to be written to the port output data register. * This parameter can be a value of @ref gpio_pin_state. * @retval None */ void hal_gpio_writepin(uint32_t gpio_periph, uint8_t pinx, bit_status bit_val);
hal_gpio_writepin函數是HAL庫中關於GPIO的一個輸出函數,主要作用是將某個引腳的電平狀態進行設置,從而達到控制外部設備的目的。通過調用該函數,可以輕鬆地實現對開關、LED、電機等器件的操作。
二、參數介紹
hal_gpio_writepin函數有三個參數,下面我們分別介紹:
- gpio_periph: GPIO端口的時鐘。該參數從枚舉gpio_peripheral_define中定義,可以選擇PA、PB、PC、PD、PE、PF、PG等GPIO端口。
- pinx: 選擇要操作的GPIO引腳。該參數從枚舉gpio_pin_define中定義,可以選擇0~15之間的數字,代表要設置的引腳。(例如選擇PA0,對應的枚舉值就是GPIO_PIN_0)
- bit_val: GPIO要設置的輸出電平狀態。該參數的取值可以是GPIO_PIN_RESET或GPIO_PIN_SET,分別代表低電平和高電平。
三、函數原理
在單片機中,GPIO引腳都有一個相應的寄存器,用於控制引腳的電平。在應用程序中,我們可以通過修改對應的寄存器來改變引腳電平。hal_gpio_writepin函數作用就是將用戶傳入的電平值寫入對應的寄存器中,從而實現改變引腳電平的目的。
四、調用示例
下面是一個簡單的示例程序,用於將PA5引腳的電平狀態設置為高電平:
#include "gd32f10x.h" int main(void) { /* 時鐘初始化 */ rcu_periph_clock_enable(RCU_GPIOA); /* GPIO初始化 */ gpio_direction_output(GPIOA, GPIO_PIN_5); hal_gpio_writepin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET); /* 此處可以加入無限循環,保證程序不會退出,從而保證LED一直處於亮的狀態 */ }
在程序中,首先需要初始化PA端口的時鐘,然後將PA5引腳設置為輸出模式,最後通過調用hal_gpio_writepin函數將PA5的輸出電平狀態設置為高電平,從而實現控制LED亮的目的。
五、總結
通過以上對於hal_gpio_writepin函數的詳細介紹,我們可以清晰地了解到這個函數的作用、參數和實現原理。同時,我們還給出了一個簡單的程序示例,通過這個示例,我們可以更好地掌握這個函數的使用方法和注意事項,進而在實際開發中更加得心應手。
原創文章,作者:KMZEH,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/368815.html