亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

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

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

3天內(nèi)不再提示

如何通過GPIO驅(qū)動配置實現(xiàn)控制i.MX8芯片引腳電平變化

CHANBAEK ? 來源:飛車俠 ? 作者:Pual Lin ? 2023-12-04 11:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文我們要講的是如何通過 GPIO 驅(qū)動配置實現(xiàn)控制 i.MX8 芯片引腳電平變化。

硬件平臺:i.MX8QMMEK EVM Board

軟件環(huán)境:i.MX-P9.0.0_2.1.0-AUTO-GA

我們這里使用的是通過 DTS 文件來進行設(shè)備硬件資源的申請及分配,用戶可以在 fsl-imx8qm-mek.dtsi 文件下操作 DTS,文件所在目錄:kernel_imxarcharm64bootdtsfreescale,定義 myled節(jié)點 設(shè)備如下:

myled {  
        compatible = "fsl,myled";  
        pinctrl-names = "default";  
        pinctrl-0 = < &pinctrl_gpio_keys >;  
    };

使用的引腳編號為 GPIO4_22,引腳功能定義 pinctrl_gpio_keys 如下:

pinctrl_gpio_keys: myled{  
            fsl,pins = <  
              SC_P_QSPI1A_DQS_LSIO_GPIO4_IO22     0x00000021 
             >;  
        };

以上便完成 DTS 配置,接下來需要編寫驅(qū)動代碼 myled.c ,首先建立好驅(qū)動代碼框架:

  1. 構(gòu)建 platform_driver 結(jié)構(gòu)體及定義 compatible
static const struct of_device_id myled_ids[] = {  




    { .compatible = "fsl,myled", },  
    { },  
};  




static struct platform_driver myled_driver={  
    .probe  = myled_probe,  
    .remove = myled_remove,  
    .driver = {  
        .name  = "myled",  
        .of_match_table = myled_ids,  
    }  
};
  1. 注冊平臺驅(qū)動
static int __init myled_init(void)  
{  
    /*2. 注冊平臺驅(qū)動*/  
    platform_driver_register(&myled_driver);  
    return 0;  
}
  1. 注銷平臺驅(qū)動
static void __exit myled_exit(void)  
{  
    /*3. 注銷平臺驅(qū)動*/  
    platform_driver_unregister(&myled_driver);    
}
  1. 定義 probe 函數(shù)
static  int myled_probe(struct platform_device *pdev)  
{  
    int ret;  
    ret = gpio_request(USER_LED, "LED");//第一個參數(shù),為要申請的引腳,第二個為你要定義的名字  
    if (ret)   
    {  
        printk("[pual] gpio_request error %s - %d -- n",__func__,__LINE__);  
        return ret;  
    }  
    gpio_direction_output(USER_LED, 1);  
    gpio_set_value(USER_LED, 1);  
    major = register_chrdev(0,"myled",&myled_drv_fops);  


    //創(chuàng)建設(shè)備信息,執(zhí)行后會出現(xiàn) /sys/class/myled  
    myled_class = class_create(THIS_MODULE, "myled");  


    //創(chuàng)建設(shè)備節(jié)點,就是根據(jù)上面的設(shè)備信息來的  
    myled_class_devs = device_create(myled_class, NULL, MKDEV(major, 0), NULL, "myled"); /* /dev/myled */  


    return 0;     
}
  1. 定義 ioctl 函數(shù)
static long myled_drv_ioctl(struct file *file, unsigned int cmd, unsigned long arg)  
{     
    printk("gpio_ioctln");  
    switch(cmd) {  
        case 1:  
            if(arg == 0)  
            {  
                gpio_set_value(USER_LED, 0);  
                printk("led is offn");  
                break;  
            }else  
                {  
                        gpio_set_value(USER_LED, 1);  
                            printk("led is onn");  
                            break;  
                }  
        default:  
                return -EINVAL;  
    }  
    return 0;  
}
  1. 設(shè)定引腳編號
#define USER_LED      374       /*GPIO LED  GPIO4_22*/

以上便完成 GPIO 驅(qū)動代碼,通過應(yīng)用程序便可以調(diào)用 ioctl 函數(shù)控制引腳電平變換。

注意:

i.MX8 GPIO 引腳編號設(shè)定與其他芯片會有所不同,總共有八組 GPIO,GPIO0~GPIO6,如下圖所示:

圖片

它們所對應(yīng)的編號分別為:

圖片

前面完成了對 i.MX8 GPIO 設(shè)備驅(qū)動的介紹,后續(xù)將會分享更多關(guān)于 i.MX8 系列的開發(fā)內(nèi)容。

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

    關(guān)注

    462

    文章

    53310

    瀏覽量

    456060
  • 電平
    +關(guān)注

    關(guān)注

    5

    文章

    368

    瀏覽量

    41090
  • 引腳
    +關(guān)注

    關(guān)注

    16

    文章

    2025

    瀏覽量

    54811
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1308

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    i.MX6ULL 驅(qū)動開發(fā)7—按鍵輸入捕獲與GPIO輸入配置與高低電平讀取

    本篇主要介紹了i.MX6ULL的按鍵檢測的使用,主要的知識點是設(shè)備樹的修改,以及GPIO的輸入配置與高低電平的讀取。
    的頭像 發(fā)表于 05-24 09:11 ?7384次閱讀
    <b class='flag-5'>i.MX</b>6ULL <b class='flag-5'>驅(qū)動</b>開發(fā)7—按鍵輸入捕獲與<b class='flag-5'>GPIO</b>輸入<b class='flag-5'>配置</b>與高低<b class='flag-5'>電平</b>讀取

    怎樣通過GPIO驅(qū)動配置實現(xiàn)控制imx8芯片引腳電平變化

    imx8GPIO引腳編號設(shè)定與其他芯片有哪些不同?怎樣通過GPIO驅(qū)動
    發(fā)表于 08-04 06:16

    如何將對i.MX8芯片的支持添加到rustBoot?

    我想為rustBoot添加對 i.MX8 芯片的支持,我希望你能在以下問題中為我指出正確的方向。關(guān)于i.MX8 容器格式的文檔很少。我在哪里可以找到有關(guān)“容器布局”的詳細信息,即哪些字節(jié)表示什么以及
    發(fā)表于 03-30 07:48

    i.MX8以太網(wǎng)無法配置靜態(tài)IP如何解決?

    我在 i.MX8 pluse evk 上用 android 13 測試以太網(wǎng)功能。我發(fā)現(xiàn)了一個關(guān)于靜態(tài)ip的問題。更改以太網(wǎng)配置對話框后,我無法配置靜態(tài) IP。你能解決這個問題嗎?
    發(fā)表于 03-30 06:51

    i.MX8 SPI CS引腳不工作是怎么回事?

    我在 Variscite i.MX8 迷你 SoM 上運行 Debian。我已經(jīng)用邏輯分析儀驗證了除 CS 之外的所有 SPI 信號都在工作。無論我做什么,CS 總是很低。我嘗試通過命令行寫入
    發(fā)表于 03-31 06:38

    i.MX8 Mini的參考手冊框圖中為什么找不到SCU?

    對應(yīng)的i.MX8設(shè)備。所以我認為這是 i.MX8 系列的一般特征。在 i.MX8 Mini 的參考手冊框圖中,我找不到 SCU。我假設(shè)此設(shè)備沒有 SCU 是否正確?我如何設(shè)置設(shè)備以實現(xiàn)
    發(fā)表于 04-19 10:39

    如何在i.mx8 EVK中使用LIN通信?

    i.mx8 EVK 中使用 LIN 通信
    發(fā)表于 04-20 07:20

    是否有任何文檔提供i.MX8的MTBF值?

    我正在搜索 i.Mx8 的 MTBF 值,但只找到 i.MX6 的 MTBF 值。 是否有任何文檔提供 i.MX8 的 MTBF 值? (例如 AN4724 - i.MX 6Dual/
    發(fā)表于 05-22 09:12

    無法在i.MX8文檔中找到有關(guān)DP引腳的任何信息,求分享

    我正在使用 MCIMX8M-EVK,我需要使用顯示端口 (DP)。i.MX8 處理器通過接口 HDMI 顯示接口支持 DP。 我的第一個問題是關(guān)于這個界面。我無法在 i.MX8 文檔
    發(fā)表于 05-30 06:18

    i.mx8系列是在哪里制造的?

    我沒有看到 i.mx8 處理器的原產(chǎn)國。據(jù)我了解,恩智浦在全球擁有一系列FAB。因此想知道是否有人可以分享 i.mx8 處理器的制造地點?
    發(fā)表于 06-01 07:22

    NXP i.MX8系列性能比較

    的、極高的可擴展性。多個應(yīng)用可利用一個系統(tǒng)設(shè)計,從而顯著節(jié)省系統(tǒng)成本。?i.MX 8Xi.MX 8X系列擴展了i.MX 8系列的可伸縮性,包
    的頭像 發(fā)表于 07-01 18:52 ?3.6w次閱讀
    NXP <b class='flag-5'>i.MX8</b>系列性能比較

    淺談NXP i.MX8系列應(yīng)用處理器

    NXP i.MX系列應(yīng)用處理器是基于32和64位ARM技術(shù),提供多核解決方案,適用于多媒體和顯示應(yīng)用,具有高性能和低功耗、可擴展、安全可靠等特點。i.MX系列家族成員包括i.MX28系列、i.
    發(fā)表于 04-02 09:59 ?6209次閱讀
    淺談NXP <b class='flag-5'>i.MX8</b>系列應(yīng)用處理器

    i.MX8 Android Automotive12 修改開機 logo

    i.MX8 的 Android Automotive12 BSP 版本中,默認的是 NXP 的開機 LOGO 顯示,如果我們想要更改顯示自己的 logo,該如何配置?本篇文件給大家介紹如何更改 i.MX8 Android A
    的頭像 發(fā)表于 09-04 16:42 ?2225次閱讀
    <b class='flag-5'>i.MX8</b> Android Automotive12 修改開機 logo

    恩智浦i.MX8處理器的集成電源設(shè)計

    電子發(fā)燒友網(wǎng)站提供《恩智浦i.MX8處理器的集成電源設(shè)計.pdf》資料免費下載
    發(fā)表于 09-18 14:25 ?0次下載
    恩智浦<b class='flag-5'>i.MX8</b>處理器的集成電源設(shè)計

    面向NXP i.MX8處理器的電源解決方案

    電子發(fā)燒友網(wǎng)站提供《面向NXP i.MX8處理器的電源解決方案.pdf》資料免費下載
    發(fā)表于 12-24 15:53 ?0次下載
    面向NXP <b class='flag-5'>i.MX8</b>處理器的電源解決方案