DA14683開發:GPIO操作

來源:互聯網
上載者:User

標籤:priority   ESS   int   輸入   ati   建立   狀態   線程   strong   

DA14683GPIO操作

勤基科技  陳傑明

添加GPIO初始化函數

在main.c中,添加以下子函數,初始化GPIO口,按鍵的引腳設定為輸入,LED燈的引腳設定為輸出。

/*按鍵GPIO設定*/

void key_led_init()

{

 

        hw_gpio_set_pin_function(HW_GPIO_PORT_1,HW_GPIO_PIN_6, HW_GPIO_MODE_INPUT,

 

                        HW_GPIO_FUNC_GPIO);//按鍵

 

        hw_gpio_set_pin_function(HW_GPIO_PORT_1,HW_GPIO_PIN_5, HW_GPIO_MODE_OUTPUT,

 

                        HW_GPIO_FUNC_GPIO);//LED

 

}

然後在以下位置調用該函數:

這樣我們的GPIO口初始化就完成了。

 

添加按鍵和LED開關定義

同樣在main.c中添加以下宏定義和子函數

/*按鍵宏定義*/

#define IS_KEY1_DONE()\

        !hw_gpio_get_pin_status(HW_GPIO_PORT_1,HW_GPIO_PIN_6)

/*LED狀態翻轉*/

void led_toggle()

{

        hw_gpio_toggle(HW_GPIO_PORT_1, HW_GPIO_PIN_5 );

}

以上代碼定義了按鍵按下的狀態,低電平表示按下按鍵

led_toggle函數為GPIO輸出狀態取反。

 

新增工作實體函數

在main.c中加入以下任務處理函數:

/*簡單的按鍵處理線程*/

void key_led_task(void *keydeal)

{

        static unsigned char key_press_sta=0;//按鍵標誌位

        for( ;; )//等同while(1)

        {

                if(IS_KEY1_DONE()&&key_press_sta==0)

                {

                        printf("IS_KEY1_DONE\r\n");

                        led_toggle();

                        key_press_sta=1;// 按下一次,標誌位置1,防止抖動和長按多次執行

                }

                if(!IS_KEY1_DONE())//按鍵抬起則標誌位置0

                        key_press_sta=0;

        }

}

這個是任務線程處理函數。

 

建立按鍵LED任務

在mian.c的system_init函數中建立按鍵LED任務,代碼如下:

OS_TASK handle1;// 建立新的任務控制代碼

        OS_TASK_CREATE("KEY_LED_TASK",

                       key_led_task,

                       NULL,                        

                       512,                            

                       mainPXP_REPORTER_TASK_PRIORITY,  

                       handle1);

        OS_ASSERT(handle1);

 

編譯、下載、運行

完成以上代碼添加以後,編譯器,下載運行,把按鍵的GPIO接地,LED燈的引腳就會輸出反狀態。

通過以上的簡單GPIO操作,使用者即可瞭解GPIO口的大致操作方法。

更多GPIO操作方法請查閱hw_gpio.h,瞭解具體實現方法請查閱hw_gpio.c

 

DA14683開發:GPIO操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.