Linux下LED跑馬燈驅動

2021-06-07 12:33:33 字數 1574 閱讀 1865

一.驅動程式**:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define device_name "leds"

#define led_major 231

static unsigned long led_table = ;

static unsigned int led_cfg_table = ;

static int s3c2440_leds_ioctl(

struct inode *inode,

struct file *file,

unsigned int cmd,

unsigned long arg)

s3c2410_gpio_setpin(led_table[arg], !cmd);

return 0;

default:

return -einval;}}

static struct file_operations s3c2440_leds_fops = ;

static int __init s3c2440_leds_init(void)

devfs_mk_cdev(mkdev(led_major, 0), s_ifchr | s_irusr | s_iwusr |

s_irgrp,device_name);

for (i = 0; i < 4; i++)

printk(device_name " initialized\n");

return 0;

}static void __exit s3c2440_leds_exit(void)

module_init(s3c2440_leds_init);

module_exit(s3c2440_leds_exit);

編譯的方式參考:「如何在linux下新增自己驅動」一文。

二.應用程式測試**:

#include

#include

#include

#include "stdio.h"

#include "sys/types.h"

#include "sys/ioctl.h"

#include "stdlib.h"

#include "termios.h"

#include "sys/stat.h"

#include "fcntl.h"

#include "sys/time.h"

int main()

printf("leds test show. press ctrl+c to exit \n");

while(1)

on=!on;

}close(fd);

return 0;

}最後,在目標板上找到存放led_test.c的檔案,執行./led_test,便可以看到想要的結果...

LED跑馬燈效果

這個led跑馬燈的效果是怎麼乙個原理,現分析如下 假設有乙個要進行變化的物件陣列,我們稱之為a物件。如下 這個等變化的陣列長度為5,有顏色陣列,我們稱之為b,如下 這個長度為3。要分析出原理,我們要根據事物的表象去分析得到事物內在的規律與原理,根據這個原理與規律我們才能得出解決辦法。我們進行一次模擬...

LED跑馬燈實驗

一 新建工程並新增相應的工程檔案 本實驗需要用到三個韌體庫檔案,分別為stm32f4xx gpio.c stm32f4xx gpio.h stm32f4xx rcc.c stm32f4xx rcc.h misc.c misc.h 二 編寫使用者驅動 1 編寫c檔案 a.使能gpio時鐘,根據電路原理...

LED跑馬燈 位操作

之前我們已經介紹了庫函式和暫存器控制led跑馬燈,其實無論使用哪一種方法 包括操作bsrr,brr暫存器的方式 最終都是通過操作gpio odr暫存器 32位暫存器只使用低16位 響應的位為該io口賦值 那麼什麼是位操作?我們知道gpio odr暫存器的每一位對應乙個io口的電平操作,而每一位實際是...