一.驅動程式**:
#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口的電平操作,而每一位實際是...