18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【EK-RA6E2開發(fā)指南】GPIO使用

嵌入式大雜燴 ? 來源:嵌入式大雜燴 ? 作者:嵌入式大雜燴 ? 2025-09-23 18:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

我相信大多數(shù)學習嵌入式的朋友學習單片機的第一個程序都是點燈,畢竟點燈簡單嘛,操作下GPIO即可。當然,本教程的第一個應用也從GPIO的使用開始。

1 RT-Thread PIN設備驅動簡介

RT-Thread 提供了一套簡單的 I/O 設備模型框架,如下圖所示。

I/O 設備模型框架

它位于硬件和應用程序之間,共分成三層,從上到下分別是 I/O 設備管理層、設備驅動框架層、設備驅動層。

應用程序通過 I/O 設備管理接口獲得正確的設備驅動,然后通過這個設備驅動與底層 I/O 硬件設備進行數(shù)據(jù)(或控制)交互。關于I/O模型的詳細描述請參看RT-Thread官方手冊。

I/O設備模型:

https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/device

PIN設備屬于Miscellaneous類型,在驅動文件pin.c中的rt_device_pin_register()函數(shù)可以看到其注冊的設備類型,PIN設備是很多驅動的基礎,其他驅動的開發(fā)還會依賴PIN設備,比如軟件I2C的驅動就是在PIN設備的基礎上開發(fā)的。

應用程序通過 RT-Thread 提供的 PIN 設備管理接口來訪問 GPIO,相關接口如下所示:

函數(shù)描述
rt_pin_get()獲取引腳編號
rt_pin_mode()設置引腳模式
rt_pin_write()設置引腳電平
rt_pin_read()讀取引腳電平
rt_pin_attach_irq()綁定引腳中斷回調函數(shù)
rt_pin_irq_enable()使能引腳中斷
rt_pin_detach_irq()脫離引腳中斷回調函數(shù)

關于PIN驅動API的詳細描述請參看以下內容:

https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/pin/pin

2 PIN設備使用實例之按鍵

筆者這里使用的是EK-RA6E2開發(fā)板,MCU資源很豐富,但是板載資源較少。EK-RA6E2開發(fā)板的用戶LED已經在主線程中使用了,因此這里就用戶按鍵來舉例說明如何使用PIN設備。

2.1 硬件電路

首先看下電路圖:

1.png

[]()Figure ? 按鍵電路

當然不同開發(fā)板,其引腳可能不同,請根據(jù)具體情況使用。由以上電路圖可以看到,當P304輸入低電平,表示按鍵按下,反之亦然。

2.2 按鍵實現(xiàn)

核心代碼如下:

#define KEY_PIN    BSP_IO_PORT_03_PIN_04 /* Onboard LED3 pins */

/* 按鍵檢測線程入口函數(shù)*/
static void key_thread_entry(void *parameter)
{
    static rt_uint8_t key_up = 1;   /* 按鍵松開標志 */

    /* 初始化按鍵 */
    rt_pin_mode(KEY_PIN, PIN_MODE_INPUT);

    while (1)
    {
        /* 檢測按鍵是否按下 */
        if (key_up && (rt_pin_read(KEY_PIN) == PIN_LOW) )
        {
            rt_thread_mdelay(50);   /* 延時消抖*/
            key_up = 0;

            if (rt_pin_read(KEY_PIN) == PIN_LOW)
            {
                /* 按鍵KEY按下,按鍵按下處理*/
                rt_kprintf("KEY pressed!n");
            }
        }
        else if((rt_pin_read(KEY_PIN) == PIN_HIGH) )
        {
            key_up = 1;     /* 按鍵已松開 */
        }
        rt_thread_mdelay(100);
    }
}

/* 線程初始化*/
int key_init(void)
{
    /* 創(chuàng)建線程,名稱是 key_thread,入口是 key_thread*/
    rt_thread_t key_tid= RT_NULL;
    key_tid = rt_thread_create( "gpio",
                             key_thread_entry,
                             RT_NULL,
                             1024,
                             3,
                             10);
    /* 如果獲得線程控制塊,啟動這個線程 */
    if(key_tid == RT_NULL)
    {
        rt_kprintf("Thread_gpio ERROR");
        return RT_ERROR;
    }
    else
    {
        rt_thread_startup(key_tid);
        return RT_EOK;
    }
}

/* 導出到 msh 命令列表中 */
MSH_CMD_EXPORT(key_init, key init);

構建并下載程序,并使用msh 命令初始化KEY線程,按下按鍵,則可以看到串口終端輸出以下信息:

2.png

當然啦,在finsh輸入list device可以查到注冊到RT-Thread的PIN設備:

3.png

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6072

    文章

    45267

    瀏覽量

    661159
  • 嵌入式
    +關注

    關注

    5177

    文章

    20003

    瀏覽量

    325568
  • GPIO
    +關注

    關注

    16

    文章

    1302

    瀏覽量

    55464
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    EK-RA6E2開發(fā)指南開發(fā)環(huán)境搭建

    瑞薩電子的開發(fā)工具有很多,筆者習慣使用MDK開發(fā),因此本文將基于MDK+RA Smart Configurator搭建開發(fā)環(huán)境。
    的頭像 發(fā)表于 09-23 18:12 ?2287次閱讀
    【<b class='flag-5'>EK-RA6E2</b><b class='flag-5'>開發(fā)指南</b>】<b class='flag-5'>開發(fā)</b>環(huán)境搭建

    EK-RA6E2開發(fā)指南】ADC獲取電壓值

    RA6E22個ADC單元,每個ADC單元有12位、10位、8位讀取數(shù)據(jù)的格式可以選擇,在單元0上有13個ADC通道,而在單元1上有16個ADC通道。 ADC單元具有三種掃描方式分別為:單次描模式、連續(xù)掃描模式和分組掃描模式,
    的頭像 發(fā)表于 09-23 18:15 ?1557次閱讀
    【<b class='flag-5'>EK-RA6E2</b><b class='flag-5'>開發(fā)指南</b>】ADC獲取電壓值

    EK-RA6E2開發(fā)指南】DAC設置電壓值

    RA6E2有片上DAC外設,總共有兩路DAC輸出通道,每路的分辨率可配置為12位, 這兩個通道之間互不影響,每個通道都可以使用ELC功能可外部觸發(fā)或者進行與ADC單元1的同步轉換。
    的頭像 發(fā)表于 09-23 18:16 ?1650次閱讀
    【<b class='flag-5'>EK-RA6E2</b><b class='flag-5'>開發(fā)指南</b>】DAC設置電壓值

    EK-RA2E2-快速入門指南

    EK-RA2E2-快速入門指南
    發(fā)表于 01-30 18:47 ?0次下載
    <b class='flag-5'>EK-RA2E2</b>-快速入門<b class='flag-5'>指南</b>

    EK-RA2E1 – 快速入門指南

    EK-RA2E1 – 快速入門指南
    發(fā)表于 02-03 19:08 ?0次下載
    <b class='flag-5'>EK-RA2E</b>1 – 快速入門<b class='flag-5'>指南</b>

    EK-RA6M2– 快速入門指南

    EK-RA6M2 – 快速入門指南
    發(fā)表于 03-13 19:36 ?0次下載
    <b class='flag-5'>EK-RA6M2</b>– 快速入門<b class='flag-5'>指南</b>

    EK-RA6E2v1 – 用戶手冊

    EK-RA6E2 v1 – 用戶手冊
    發(fā)表于 05-12 19:18 ?0次下載
    <b class='flag-5'>EK-RA6E2</b>v1 – 用戶手冊

    EK-RA6E2– 快速入門指南

    EK-RA6E2 – 快速入門指南
    發(fā)表于 05-12 19:20 ?1次下載
    <b class='flag-5'>EK-RA6E2</b>– 快速入門<b class='flag-5'>指南</b>

    EK-RA4E2– 快速入門指南

    EK-RA4E2 – 快速入門指南
    發(fā)表于 05-12 19:23 ?0次下載
    <b class='flag-5'>EK-RA4E2</b>– 快速入門<b class='flag-5'>指南</b>

    EK-RA6E2v1 – 用戶手冊

    EK-RA6E2 v1 – 用戶手冊
    發(fā)表于 06-29 19:10 ?1次下載
    <b class='flag-5'>EK-RA6E2</b>v1 – 用戶手冊

    EK-RA6E2– 快速入門指南

    EK-RA6E2 – 快速入門指南
    發(fā)表于 06-29 19:11 ?0次下載
    <b class='flag-5'>EK-RA6E2</b>– 快速入門<b class='flag-5'>指南</b>

    EK-RA4E2– 快速入門指南

    EK-RA4E2 – 快速入門指南
    發(fā)表于 06-29 19:14 ?0次下載
    <b class='flag-5'>EK-RA4E2</b>– 快速入門<b class='flag-5'>指南</b>

    EK-RA2E2-快速入門指南

    EK-RA2E2-快速入門指南
    發(fā)表于 07-03 20:12 ?0次下載
    <b class='flag-5'>EK-RA2E2</b>-快速入門<b class='flag-5'>指南</b>

    EK-RA2E1 – 快速入門指南

    EK-RA2E1 – 快速入門指南
    發(fā)表于 07-04 19:40 ?0次下載
    <b class='flag-5'>EK-RA2E</b>1 – 快速入門<b class='flag-5'>指南</b>

    EK-RA6M2– 快速入門指南

    EK-RA6M2 – 快速入門指南
    發(fā)表于 07-04 20:54 ?0次下載
    <b class='flag-5'>EK-RA6M2</b>– 快速入門<b class='flag-5'>指南</b>