日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

字符驱动之按键(一:无脑轮询法)

發布時間:2025/6/16 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 字符驱动之按键(一:无脑轮询法) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、添加頭文件二、構造fileoperation結構體static struct fileoperations second_drv_fops = {.owner = THIS_MODULE;.open = second_drv_open;.write = ;second_drv_write}三、填充file_operations中的成員函數 static int second_drv_open(struct inode *inode,struct file *file) {return 0; }ssize_t second_drv_read(struct file *file,char __user *buf,size_t size,loff_t *ppos) {return 0; }還有初始化函數static int second_drv_init(void) {major = register_chrdev(0,"second_drv",&second_drv_fops);return 0; }static int second_drv_exit(void) {unregister_chrdev(major,"second_drv");return 0; }module_init(second_drv_init); module_exit(second_drv_exit);要使用udev(mdev機制)根據信息來創造設備節點先創建一個class,再創建一個設備。 定義兩個結構體: static struct class *seconddrv_class; static struct class_device *seconddrv_class_dev;static int second_drv_init(void) { //創建一個類,在類下面創建一個設備。 //mdev是udev的簡化版本major = register_chrdev(0,"second_drv",&second_drv_fops);seconddrv_class = class_create(THIS_MODULE,"seconddrv");seconddrv_class_dev = class_device_create(seconddrv_class,NULL,MKDEV(major,0),NULL,"buttons");return 0; }static void second_drv_exit(void) {unregister_chrdev(major,"first_drv");class_device_unregister(seconddrv_class_dev);class_destroy(seconddrv_class); }

?

轉載于:https://www.cnblogs.com/stm32f4/p/8335104.html

總結

以上是生活随笔為你收集整理的字符驱动之按键(一:无脑轮询法)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。