欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

3天內不再提示

Linux中LED驅動的應用層控制

麥辣雞腿堡 ? 來源:嵌入式Linux充電站 ? 作者:Vincent ? 2023-09-27 11:09 ? 次閱讀

今天,我們就站在巨人的肩膀上,利用內核開發(fā)者已經(jīng)寫好的驅動來實現(xiàn)我們想要的功能。

應用層控制

除了可以在shell中通過echo、cat的方式控制Led,我們也可以在寫一個應用層程序來操作/sys/class/leds/下的節(jié)點,應用層代碼:

#include < stdio.h >
#include < stdlib.h >
#include < unistd.h >
#include < errno.h >
#include < fcntl.h >
#include < string.h >

#include < sys/stat.h >
#include < sys/types.h >

#define LED_DEV_PATH "/sys/class/leds/led%d/brightness"
#define ON
#define OFF

int fs4412_set_led(unsigned int lednum, unsigned int mode)
{
 int fd;
    int ret;
    char devpath[128];
    char *on = "1n";
    char *off = "0n";
    char *m = NULL;
    
    snprintf(devpath, sizeof(devpath), LED_DEV_PATH, lednum);
    fd = open(devpath, O_WRONLY);
    if (fd == -1) {
  perror("fsled- >open");
        return -1;
 }
    
    if (mode == ON)
         m = on;
    else
         m = off;
    
    ret = write(fd, m, strlen(m));
    if (ret == -1) {
  perror("fsled- >wrtie");
        close(fd);
        return -1;
    }
    
    close(fd);
    return 0;

}

int main(int argc, char *argv[])
{
 unsigned int lednum = 2;
    
    while(1){
  fs4412_set_led(lednum, on);
        usleep(500000);
        fs4412_set_led(lednum, OFF);
  usleep(500000);
        
        lednum++;
        if (lednum > 5)
             lednum = 2;
 }

 return 0;
}

上述應用層代碼執(zhí)行后,led2會閃爍。

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

    關注

    242

    文章

    23376

    瀏覽量

    663452
  • 驅動
    +關注

    關注

    12

    文章

    1852

    瀏覽量

    85675
  • Linux
    +關注

    關注

    87

    文章

    11350

    瀏覽量

    210476
  • 應用層
    +關注

    關注

    0

    文章

    46

    瀏覽量

    11547
收藏 人收藏

    評論

    相關推薦

    嵌入式Linux字符驅動LED燈設計

    要寫一個應用層的測試程序,用來測試驅動程序。我的測試程序為myled_test.c,要求在shell下能夠通過該測試程序來控制LED燈的亮滅。如:./myled_test on表示燈全
    發(fā)表于 02-03 14:28

    鴻蒙Hi3516 純手工打造從應用層驅動示例

    在vendor\huawei\hdf\ 目錄,新建驅動LED目錄,vendor\huawei\hdf\LED ;新建LED.c文件
    發(fā)表于 11-06 09:56

    鴻蒙Hi3516dv 從應用層驅動GPIO 點亮LED

    再從寄存器級別重新寫驅動,可以直接調用。2.在驅動文件 LED.c 添加gpio接口的頭文件;不能在
    發(fā)表于 11-07 14:22

    【HiSpark AI Camera】鴻蒙Hi3516 純手工打造從應用層驅動示例

    vendor\huawei\hdf\ 目錄,新建驅動LED目錄,vendor\huawei\hdf\LED ;新建LED.c文件
    發(fā)表于 11-07 15:41

    學習嵌入式Linux應用層的開發(fā)

    1 應用層驅動要想學習嵌入式Linux應用層的開發(fā),首先要區(qū)分好應用層
    發(fā)表于 11-02 10:20

    如何在嵌入式linux應用層操作gpio口

    嵌入式linux文件io方式操作gpio口示例在嵌入式linux應用層操作gpio口,如果懶得寫驅動或者懶得翻寄存器手冊,有一種簡單的方式
    發(fā)表于 12-16 06:19

    Linux驅動的相關資料下載

    // 再說明一下哈,你簡歷上寫了你會驅動,面試官才問,你不寫,一般不會問。1、UBOOT的作用2、驅動包括哪幾種3、yaffs、jffs文件系統(tǒng)的不同4、應用層
    發(fā)表于 12-24 07:25

    【學習打卡】OpenHarmony的應用層說明

    應用程序進行通信。關于OSI(開放系統(tǒng)互連)網(wǎng)絡模型標準,可以參考下圖,OSI 網(wǎng)絡模型是從硬件開始的較低級別到較高級別進行排列。需要注意的是應用層不是應用。相反,它其實是應用程序的一個組件,我們可以
    發(fā)表于 07-14 08:44

    Linux驅動到底能不能在應用層開發(fā)驅動

    驅動程序也要跟著重新編譯,太麻煩了。因此,我建議同事把驅動寫到APP里面。同事大驚,Linux能在應用層開發(fā)驅動?
    的頭像 發(fā)表于 12-29 10:34 ?6193次閱讀

    linux spi應用層驅動以及回環(huán)測試代碼

    linux spi應用層驅動以及回環(huán)測試代碼
    發(fā)表于 10-22 15:47 ?2次下載

    嵌入式Linux應用層開發(fā)教程(一)基本概念

    1 應用層驅動要想學習嵌入式Linux應用層的開發(fā),首先要區(qū)分好應用層
    發(fā)表于 11-01 17:59 ?14次下載
    嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>應用層</b>開發(fā)教程(一)基本概念

    嵌入式Linux驅動 GPIO操作 包括驅動應用層程序對驅動進行測試

    文章目錄代碼驅動代碼應用層代碼 測試驅動Makefile這里記錄的是嵌入式linux驅動對gp
    發(fā)表于 11-02 14:36 ?10次下載
    嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>驅動</b> GPIO操作 包括<b class='flag-5'>驅動</b>和<b class='flag-5'>應用層</b>程序對<b class='flag-5'>驅動</b>進行測試

    Linux應用層操作寄存器

    應用層操作寄存器 驅動操作寄存器,需要先進行映射將物理地址轉為虛擬地址。 但如果想在應用層操作寄存器,也是可以實現(xiàn)的。
    的頭像 發(fā)表于 09-26 16:37 ?1021次閱讀

    Linux應用層操作寄存器

    --- > [*] /dev/mem virtual device support Linux應用層操作寄存器 除了直接使用devmem,我們也可以在Linux應用層自己實現(xiàn)一個de
    的頭像 發(fā)表于 10-08 15:16 ?1318次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>應用層</b>操作寄存器

    Linux應用層控制外設的兩種不同的方式

    眾所周知,linux下一切皆文件,那么應用層如何控制硬件,同樣是通過 文件I/O的方式來實現(xiàn)的,那么應用層
    的頭像 發(fā)表于 10-05 19:03 ?718次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>應用層</b><b class='flag-5'>控制</b>外設的兩種不同的方式