首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

gec6818蜂鸣器LED内核模块文件下载(驱动)

物联网 61.66KB 24 需要积分: 1
立即下载

资源介绍:

gec6818蜂鸣器LED内核模块文件下载(驱动)
/*--------------------------------------- *功能描述: 实现LED的驱动 *创建者: 粤嵌技术部 *创建时间: 2015,01,01 --------------------------------------- *修改日志: *修改内容: *修改人: *修改时间: ----------------------------------------*/ /************************************************* *头文件 *************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include #define DEVICE_NAME "Led" //定义设备名字 //定义Led的结构体,包括管脚和名字 struct led { int gpio; char *name; }; //定义Led的管脚和名字 static struct led led_gpios[] = { {PAD_GPIO_B+26,"led1"}, {PAD_GPIO_C+11,"led2"}, {PAD_GPIO_C+7,"led3"}, {PAD_GPIO_C+12,"led4"}, }; #define LED_NUM 4 //ARRAY_SIZE(led_gpios) #define TEST_MAX_NR 4 //定义命令的最大序数 #define TEST_MAGIC 'x' //定义幻数 #define LED1 _IO(TEST_MAGIC, 0) #define LED2 _IO(TEST_MAGIC, 1) #define LED3 _IO(TEST_MAGIC, 2) #define LED4 _IO(TEST_MAGIC, 3) #define LED_ON 0 //灯亮 #define LED_OFF 1 //灯灭 /************************************************* *led_open函数 *************************************************/ static int led_open(struct inode *inode, struct file *filp) { printk(DEVICE_NAME ":open\n"); return 0; } /************************************************* *LED控制函数 *************************************************/ static long gec5260_leds_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) { #if 1 printk("led_num = %d \n", LED_NUM); if(_IOC_TYPE(cmd) != TEST_MAGIC) return - EINVAL; if(_IOC_NR(cmd) > TEST_MAX_NR) return - EINVAL; gpio_set_value(led_gpios[_IOC_NR(cmd)].gpio, arg); printk(DEVICE_NAME": %d %lu\n", _IOC_NR(cmd), arg); #endif //printk("xxxx %lu, %d xxxxx \n", cmd, arg); return 0; } /************************************************* *文件操作集 *************************************************/ static struct file_operations gec5260_led_dev_fops = { .owner = THIS_MODULE, .open = led_open, .unlocked_ioctl = gec5260_leds_ioctl, }; /************************************************* *杂项设备 *************************************************/ static struct miscdevice gec5260_led_dev = { .minor = MISC_DYNAMIC_MINOR, .name = DEVICE_NAME, .fops = &gec5260_led_dev_fops, }; /******************************************************************** *驱动的初始化函数--->从内核中申请资源(内核、中断、设备号、锁....) ********************************************************************/ static int __init gec5260_led_dev_init(void) { int ret, i; gpio_free(PAD_GPIO_B+26); gpio_free(PAD_GPIO_C+11); gpio_free(PAD_GPIO_C+7); gpio_free(PAD_GPIO_C+12); for (i = 0; i < LED_NUM; i++) { ret = gpio_request(led_gpios[i].gpio, led_gpios[i].name); //io申请 if (ret) //失败则打印出那个管教申请失败 { printk("%s: request GPIO %d for LED failed, ret = %d\n", led_gpios[i].name, led_gpios[i].gpio, ret); return ret; } gpio_direction_output(led_gpios[i].gpio,0); //设置io为输出管脚 } ret = misc_register(&gec5260_led_dev); //杂项设备申请 printk(DEVICE_NAME"\tinitialized\n"); //显示申请成功 return ret; } /***************************************************************** *驱动退出函数 --->将申请的资源还给内核 *****************************************************************/ static void __exit gec5260_led_dev_exit(void) { int i; //释放管教 for (i = 0; i < LED_NUM; i++) { gpio_free(led_gpios[i].gpio); } //移除杂项设备 misc_deregister(&gec5260_led_dev); } module_init(gec5260_led_dev_init); //驱动的入口函数会调用一个用户的初始化函数 module_exit(gec5260_led_dev_exit); //驱动的出口函数会调用一个用户的退出函数 /*************************************************************** *驱动的描述信息: #modinfo *.ko , 驱动的描述信息并不是必需的。 ***************************************************************/ MODULE_AUTHOR("ZOROE@GEC"); //驱动的作者 MODULE_DESCRIPTION("the LED of driver"); //驱动的描述 MODULE_LICENSE("GPL"); //遵循的协议

资源文件列表:

led_beep.zip 大约有10个文件
  1. beep/
  2. beep/beep/
  3. beep/beep/buz_test.c 497B
  4. beep/beep/gec6818_beep.c 4.04KB
  5. beep/beep/gec6818_beep.ko 60.95KB
  6. led/
  7. led/led.c 4.71KB
  8. led/led.ko 61.54KB
  9. led/led_test 5.86KB
  10. led/led_test.c 954B
0评论
提交 加载更多评论
其他资源 buyigua1~2bak
buyigua1~2bak
buyigua1~2bak
基于Python的车牌检测和识别系统源码.zip
基于Python的车牌检测和识别系统介绍: 1.输入原始图片,通过二值化,边缘检测,和基于色调的颜色微调等办法检测出原图中的车牌号的位置; 2.把检测到的车牌(ROI)裁剪,为车牌号的识别做准备; 3.基于裁剪的车牌号,使用直方图的波峰波谷分割裁剪的车牌号(如上图中的第3步) 4.训练机器学习模型做车牌识别,这里训练了2个SVM,一个SVM用来识别省份简称(如 鲁),另一个SVM用来识别字母和数字。 5.通过PyQt5把整个算法封装成GUI程序,并打包发布安装软件。
Navicat软件zip压缩包
Navicat软件zip压缩包
rax3000m刷机固件
rax3000m刷机固件
C++类入门程序源码240717
C++类入门程序源码240717
gec6818蜂鸣器LED内核模块文件下载(驱动)
gec6818蜂鸣器LED内核模块文件下载(驱动)
桌面应用开发 + PyQt + Qt Quick + 示例代码 + 快速入门
内容概要 这个资源包含一个完整的PyQt和Qt Quick示例代码项目,演示了如何使用PyQt5和Qt Quick在Python中开发桌面应用程序。项目结构清晰,包含详细的注释和文档,帮助开发者快速上手并理解相关技术。 适用人群 - 桌面应用程序开发者 - Python开发者 - 初学者及中级水平程序员 - 对Qt Quick界面开发感兴趣的开发者 使用场景及目标 - 快速搭建PyQt和Qt Quick开发环境 - 学习如何使用PyQt和Qt Quick创建现代化的桌面应用程序 - 提供实际项目中的代码示例,帮助开发者理解和掌握关键技术 - 用于教学和培训目的,提供完整的项目结构和代码示例 其他说明 资源中包含详细的README文件,说明如何运行和测试项目 提供常见问题及解决方法,帮助用户解决在使用过程中遇到的问题 包含多个示例文件和详细注释,帮助用户更好地理解代码逻辑
《ANSYS+SpaceClaim直接建模指南与CAE前处理应用解析》(第五章实例文件)
学习spaceclaim的同学,苦于找不到本书的练习文件,可以下载