当前位置: 首页 > news >正文

郑州东站附近网站建设公司计算机文化基础网页制作题视频

郑州东站附近网站建设公司,计算机文化基础网页制作题视频,网站建设视频下载,万网查询全部域名使用驱动编写控制高低电平 可看我前俩篇文章#xff1a; 【1】全志orangepi-zeor2驱动编写 【2】驱动函数框架详解 检索芯片手册关键信息 知道GPIO基地址 知道PC偏移地址 知道想要控制的端口的信息 知道数据位如何操作 代码实操 驱动代码 #include linux/fs.h 【1】全志orangepi-zeor2驱动编写 【2】驱动函数框架详解 检索芯片手册关键信息 知道GPIO基地址 知道PC偏移地址 知道想要控制的端口的信息 知道数据位如何操作 代码实操 驱动代码 #include linux/fs.h //file_operations声明 #include linux/module.h //module_init module_exit声明 #include linux/init.h //__init__exit 宏声明 #include linux/device.h //class device 声明 #include linux/uaccess.h //copy_from_user的头文件 #include linux/types.h //设备号dev_t类型声明 #include asm/io.h //ioremap iounmap的头文件static struct class *pin5_class; static struct device *pin5_class_dev;static dev_t devno; //设备号 static int major 231; //主设备号 static int minor 0; //次设备号 static char *module_namepin5; //模块名volatile unsigned int* GPIOBASE NULL; volatile unsigned int* GPIOPC NULL; volatile unsigned int* GPIODAT NULL;//ssize_t (*read) (struct file *, char __user *, size_t, loff_t *); static ssize_t pin5_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) {printk(pin5_read\n);return 0; }static int pin5_open(struct inode *inode,struct file *file) {printk(pin5_open\n); //内核打印函数和printf类似*GPIOPC ~(0x6 20); //把bit22~bit20 配置成001 为输出模式*GPIOPC | (0x1 20);return 0; }static ssize_t pin5_write(struct file *file,const char __user *buf,size_t count, loff_t *ppos) {char user_cmd;printk(pin5_write\n);//获取用户空间write的值copy_from_user(user_cmd,buf,count);//根据值来操控io口高电平或者低电平if(user_cmd 1){*GPIODAT | 0x01 5;printk(pin5_set\n);}else if(user_cmd 0){*GPIODAT ~(0x01 5);printk(pin5_reset\n);}else{printk(undo\n);} static struct file_operations pin5_fops {.owner THIS_MODULE,.open pin5_open,.write pin5_write,.read pin5_read, }; //static int __init static int pin5_drv_init(void) {int ret;devno MKDEV(major,minor); //创建设备号ret register_chrdev(major, module_name,pin5_fops); //注册驱动 告诉内核 把这个驱动加入到内核链表当中pin5_classclass_create(THIS_MODULE,myfirstdemo); //让代码在dev自动生成设备pin5_class_dev device_create(pin5_class,NULL,devno,NULL,module_name); //创建设备文件//映射虚拟地址//GPIO基地址GPIOBASE (volatile unsigned int *)ioremap(0x0300B000,4);//GPIOPC地址GPIOPC (volatile unsigned int *)ioremap(0x0300B048,4);//GPIO数据地址GPIODAT (volatile unsigned int *)ioremap(0x0300B058,4);return 0; }static void pin5_drv_exit(void) {iounmap(GPIOBASE);iounmap(GPIOPC);iounmap(GPIODAT);device_destroy(pin5_class,devno);class_destroy(pin5_class);unregister_chrdev(major, module_name); }module_init(pin5_drv_init); module_exit(pin5_drv_exit); MODULE_LICENSE(GPL); MODULE_AUTHOR(SHUN-GE); 用户空间测试代码 #include stdio.h #include sys/types.h #include sys/stat.h #include fcntl.h #include unistd.hint main() {int fd;int cmd;fd open(/dev/pin5,O_RDWR);if(fd 0){printf(open fail\n);}else {printf(open success\n);}scanf(%d,cmd);if(cmd 1){fd write(fd,1,1);printf(%dcmd \n,cmd);}else if(cmd 0){fd write(fd,0,1);printf(%dcmd \n,cmd);} }结果展示 PC5为OUT模式电平为1 PC5为OUT模式电平为低 结束 如有问题欢迎提出共同进步。
http://www.w-s-a.com/news/788598/

相关文章:

  • c2c电商网站wordpress仿36kr主题
  • 网站建设公司开发免费图纸网站
  • 一个网站页面设计多少钱做预算查价格的网站是哪个
  • 鳌江哪里有做网站百度短链接在线生成
  • 有没有什么做水利资料的网站杭州建设信用平台
  • 电子商务网站建设及推广方案论文wordpress无法显示文章
  • 建设工程监理网站前端和后端分别需要学什么
  • 公司网站制作效果国内最好的在线网站建设
  • 徐州好点的做网站的公司有哪些wordpress 工具插件下载
  • 如何用云服务器建设网站微网站免费开发平台
  • 官网的网站设计公司做网站需要准备哪些东西
  • 程序员和做网站那个好找工作wordpress二维码 插件
  • 湖南城市建设技术学院官方网站青海省建设局网站
  • 响应式网站有什么区别百度网站官网
  • 金华企业自助建站系统长沙建站公司模板
  • 云主机 做网站友情链接网站
  • 定制型网站设计天津网站模板建站
  • 为什么公司网站打开很慢wordpress汉化插件
  • 用dw做教学网站做网站用什么配置笔记本
  • 秦皇岛网站制作服务无网站无产品链接如何做SOHO
  • 国际婚恋网站做翻译合法吗南宁网络推广有限公司
  • 济南做网站公司排名销售市场规划方案
  • 营销型网站定制珠海建站网站
  • 企业网站代码wordpress页面重定向循环
  • 厦门网站建设哪家便宜用wordpress做企业网站
  • 网站备案有幕布python 做网站速度
  • 旅游网站模板psd网站后台维护主要做什么
  • 晋江做任务的网站网站如何设置关键词
  • 呼伦贝尔网站建设呼伦贝尔ps网页设计心得体会
  • 字母logo设计网站动画设计方案及内容