完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
基于上一篇对LED的操作下面将使用正统的linux驱动框架来完成对LED灯的操作 本次用的LED的框架涉及到的文件为led-class.c led-core.c led.h 下面上代码 内有注释: #include #include #include #include #include #include #define AM335X_GPIO(bank,gpio) (32*(bank)+(gpio)) //define gpio port number static struct led_classdev myled_dev; //define led_classdev depend on led-class.c /* * set gpio's value */ static void AM335X_led_set(struct led_classdev *cdev, enum led_brightness value) { if (value == LED_OFF) { gpio_set_value(AM335X_GPIO(3,16),0); } else { gpio_set_value(AM335X_GPIO(3,16),1); } } static int __init leds_init(void) { myled_dev.name = "myled_dev"; //led.name myled_dev.brightness = 0 ; // 0 = led off 1 = led on myled_dev.brightness_set = AM335X_led_set; // a API of the function of set value led_classdev_register(NULL,&myled_dev); //register if (gpio_request(AM335X_GPIO(3,16),"gpio_3_16")) { printk("gpio request is failn"); //requeset port } else { gpio_direction_output(AM335X_GPIO(3,16),1); //select gpio direction } printk("success insmod n"); return 0; } static void __exit leds_exit(void) { led_classdev_unregister(&myled_dev); // unregister } module_init(leds_init); module_exit(leds_exit); MODULE_AUTHOR("fengzhisha @bbs.elecfans.com"); MODULE_LICENSE("GPL"); 在/sys/class/leds/myled/就可以看到 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
【盈鹏飞RK3399安卓主板 XPC-3399Pro免费试用】+烧写出厂固件
10272 浏览 0 评论
【盈鹏飞EVB-T335开发板试用体验】debian系统烧写
3295 浏览 1 评论
【盈鹏飞I.MX6UL工控开发板试用体验】linux can 测试
3192 浏览 0 评论
264浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 00:09 , Processed in 0.577332 second(s), Total 65, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号