在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

如何通過GPIO驅動配置實現控制i.MX8芯片引腳電平變化

CHANBAEK ? 來源:飛車俠 ? 作者:Pual Lin ? 2023-12-04 11:41 ? 次閱讀

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

硬件平臺:i.MX8QMMEK EVM Board

軟件環境:i.MX-P9.0.0_2.1.0-AUTO-GA

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

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 配置,接下來需要編寫驅動代碼 myled.c ,首先建立好驅動代碼框架:

  1. 構建 platform_driver 結構體及定義 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. 注冊平臺驅動
static int __init myled_init(void)  
{  
    /*2. 注冊平臺驅動*/  
    platform_driver_register(&myled_driver);  
    return 0;  
}
  1. 注銷平臺驅動
static void __exit myled_exit(void)  
{  
    /*3. 注銷平臺驅動*/  
    platform_driver_unregister(&myled_driver);    
}
  1. 定義 probe 函數
static  int myled_probe(struct platform_device *pdev)  
{  
    int ret;  
    ret = gpio_request(USER_LED, "LED");//第一個參數,為要申請的引腳,第二個為你要定義的名字  
    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);  


    //創建設備信息,執行后會出現 /sys/class/myled  
    myled_class = class_create(THIS_MODULE, "myled");  


    //創建設備節點,就是根據上面的設備信息來的  
    myled_class_devs = device_create(myled_class, NULL, MKDEV(major, 0), NULL, "myled"); /* /dev/myled */  


    return 0;     
}
  1. 定義 ioctl 函數
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. 設定引腳編號
#define USER_LED      374       /*GPIO LED  GPIO4_22*/

以上便完成 GPIO 驅動代碼,通過應用程序便可以調用 ioctl 函數控制引腳電平變換。

注意:

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

圖片

它們所對應的編號分別為:

圖片

前面完成了對 i.MX8 GPIO 設備驅動的介紹,后續將會分享更多關于 i.MX8 系列的開發內容。

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

    關注

    459

    文章

    51901

    瀏覽量

    433391
  • 電平
    +關注

    關注

    5

    文章

    362

    瀏覽量

    40308
  • 引腳
    +關注

    關注

    16

    文章

    1470

    瀏覽量

    51893
  • GPIO
    +關注

    關注

    16

    文章

    1237

    瀏覽量

    53268
收藏 人收藏

    評論

    相關推薦

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

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

    imx8 gpio 上拉下拉配置

    imx8 gpio 上拉下拉配置,目的:通過 GPIO 驅動
    發表于 07-22 08:02

    怎樣通過GPIO驅動配置實現控制imx8芯片引腳電平變化

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

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

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

    i.MX8以太網無法配置靜態IP如何解決?

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

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

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

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

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

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

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

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

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

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

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

    NXP i.MX8系列性能比較

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

    淺談NXP i.MX8系列應用處理器

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

    i.MX8 Android Automotive12 修改開機 logo

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

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

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

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

    電子發燒友網站提供《面向NXP i.MX8處理器的電源解決方案.pdf》資料免費下載
    發表于 12-24 15:53 ?0次下載
    面向NXP <b class='flag-5'>i.MX8</b>處理器的電源解決方案
    主站蜘蛛池模板: 国产午夜精品一区二区理论影院 | 亚洲免费视频观看 | 成人欧美另类人妖 | 在线观看精品国产福利片100 | 日韩一级片在线 | 久久夜色精品国产亚洲噜噜 | 99精品视频在线播放2 | 国产毛片一区二区三区精品 | 黄 色 毛片免费 | 国产成人悠悠影院 | 新天堂在线 | 亚洲韩国欧美一区二区三区 | 天天干天天操天天舔 | 啪一啪日一日 | 四虎免费久久影院 | 亚洲视频四区 | 色综合天天综合网国产成人网 | 欧美日韩精品乱国产538 | 午夜视频在线观看一区二区 | 特黄十八岁大片 | 小雪被老外黑人撑破了 | 67pao强力打造 | 天堂在线视频精品 | 成年人黄色免费网站 | 久久精品国产大片免费观看 | 免费视频一区二区 | 免费深夜视频 | 天堂成人在线观看 | 日本美女黄色一级片 | 色妇女影院 | 国产资源在线播放 | 国产三级网站在线观看 | 99热成人精品热久久669 | 婷婷激情六月 | 一级毛片aaaaaa视频免费看 | 欧美成人免费夜夜黄啪啪 | 天天干天天澡 | 资源种子在线观看 | 4虎 影视 免费 | 天天爱天天做天天爽夜夜揉 | 色综合久久综合 |