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

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

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

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

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

CHANBAEK ? 來(lái)源:飛車(chē)俠 ? 作者:Pual Lin ? 2023-12-04 11:41 ? 次閱讀

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

硬件平臺(tái):i.MX8QMMEK EVM Board

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

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

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

使用的引腳編號(hào)為 GPIO4_22,引腳功能定義 pinctrl_gpio_keys 如下:

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

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

  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. 注冊(cè)平臺(tái)驅(qū)動(dòng)
static int __init myled_init(void)  
{  
    /*2. 注冊(cè)平臺(tái)驅(qū)動(dòng)*/  
    platform_driver_register(&myled_driver);  
    return 0;  
}
  1. 注銷(xiāo)平臺(tái)驅(qū)動(dòng)
static void __exit myled_exit(void)  
{  
    /*3. 注銷(xiāo)平臺(tái)驅(qū)動(dòng)*/  
    platform_driver_unregister(&myled_driver);    
}
  1. 定義 probe 函數(shù)
static  int myled_probe(struct platform_device *pdev)  
{  
    int ret;  
    ret = gpio_request(USER_LED, "LED");//第一個(gè)參數(shù),為要申請(qǐng)的引腳,第二個(gè)為你要定義的名字  
    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í)行后會(huì)出現(xiàn) /sys/class/myled  
    myled_class = class_create(THIS_MODULE, "myled");  


    //創(chuàng)建設(shè)備節(jié)點(diǎn),就是根據(jù)上面的設(shè)備信息來(lái)的  
    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è)定引腳編號(hào)
#define USER_LED      374       /*GPIO LED  GPIO4_22*/

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

注意:

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

圖片

它們所對(duì)應(yīng)的編號(hào)分別為:

圖片

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

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

    關(guān)注

    456

    文章

    51272

    瀏覽量

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

    關(guān)注

    5

    文章

    361

    瀏覽量

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

    關(guān)注

    16

    文章

    1220

    瀏覽量

    50952
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1217

    瀏覽量

    52434
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    imx8 gpio 上拉下拉配置

    imx8 gpio 上拉下拉配置,目的:通過(guò) GPIO 驅(qū)動(dòng)
    發(fā)表于 07-22 08:02

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    NXP i.MX8系列性能比較

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

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

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

    i.MX8 Android Automotive12 修改開(kāi)機(jī) logo

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

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

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

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

    電子發(fā)燒友網(wǎng)站提供《面向NXP i.MX8處理器的電源解決方案.pdf》資料免費(fèi)下載
    發(fā)表于 12-24 15:53 ?0次下載
    面向NXP <b class='flag-5'>i.MX8</b>處理器的電源解決方案
    主站蜘蛛池模板: 亚洲精品视频在线看 | 午夜精品久久久久久 | 国产理论片在线观看 | 性欧美视频videos6一9 | 天天干夜夜爽天天操夜夜爽视频 | 亚洲成人在线网 | 精品理论片 | 久久www免费人成看片色多多 | 国产精品资源在线观看网站 | 一级日本大片免费观看视频 | 天天爽夜夜爽人人爽免费 | 人人艹人人射 | 免费中国jlzzjlzz在线播放 | 天天摸天天做天天爽 | 国内精品第一页 | 久久国产精品亚洲综合 | 国产卡一卡2卡三卡免费视频 | 特级一级全黄毛片免费 | 6080伦理久久亚洲精品 | 男女爱爱福利 | 色婷婷777| 亚洲视频天天射 | 久久99免费| 91精品国产色综合久久不卡蜜 | 成人免费看片视频色多多 | 天天槽任我槽免费 | 天堂视频网| 永久免费视频网站在线观看 | 免费高清成人啪啪网站 | 精品卡1卡2卡三卡免费视频 | 欧美一级视频免费看 | 窝窝午夜在线观看免费观看 | 奇米第四777 | 手机在线1024 | 婷婷国产成人久久精品激情 | 亚洲激情视频网站 | 色戒真做gif动图 | 国产黄色录像视频 | 国产亚洲精品aa在线观看 | 114毛片免费观看网站 | 精品午夜久久影视 |