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

网站推广都有哪些网站备案 多久

网站推广都有哪些,网站备案 多久,wordpress 仿手机商城,建设网站的网站江苏1.实验目的 编写LED灯的驱动#xff0c;在应用程序中编写控制LED灯亮灭的代码逻辑实现LED灯功能的控制#xff1b; 2.LED灯相关寄存器分析 LED1-PE10 LED1亮灭#xff1a; RCC寄存器[4]-1 0X50000A28 GPIOE_MODER[21:20]-01 (输出) 0X50006000 GPIOE_ODR[10]-在应用程序中编写控制LED灯亮灭的代码逻辑实现LED灯功能的控制 2.LED灯相关寄存器分析 LED1-PE10 LED1亮灭 RCC寄存器[4]-1 0X50000A28 GPIOE_MODER[21:20]-01 (输出) 0X50006000 GPIOE_ODR[10]-1(输出高电平) 0输出低电平0X50006014 LED2-PF10 LED2亮灭 RCC寄存器[5]-1 0X50000A28 GPIOE_MODER[21:20]-01 (输出) 0X50006000 GPIOE_ODR[10]-1(输出高电平) 0输出低电平0X50006014 LED3-PE8 LED3亮灭 RCC寄存器[4]-1 0X50000A28 GPIOE_MODER[17:16]-01 (输出) 0X50006000 GPIOE_ODR[8]-1(输出高电平) 0输出低电平0X50006014 GPIOE_OTYPER默认为00 GPIOE_PUPDR默认为0 GPIOE_OSPEEDR默认为00 3.编写代码 ---Makefile---工程管理文件 modname?demo arch?arm ifeq ($(arch),arm) KERNELDIR: /home/ubuntu/FSMP1A/linux-stm32mp-5.10.61-stm32mp-r2-r0/linux-5.10.61 #编译生成ARM架构 else KERNELDIR:/lib/modules/$(shell uname -r)/build #编译生成X86架构 endifPWD:$(shell pwd) #模块化编译文件路径 all:make -C $(KERNELDIR) M$(PWD) modules clean:make -C $(KERNELDIR) M$(PWD) cleanobj-m:$(modname).o---head.h---头文件 #ifndef __HEAD_H__ #define __HEAD_H__typedef struct {unsigned int MODER;unsigned int OTYPER;unsigned int OSPEEDR;unsigned int PUPDR;unsigned int IDR;unsigned int ODR; }gpio_t;//LED1和LED3寄存器地址 #define LED1_ADDR 0x50006000 #define LED2_ADDR 0x50007000 #define LED3_ADDR 0x50006000 #define RCC_ADDR 0x50000A28#endif ---mychrdev.c---驱动程序 #include linux/init.h #include linux/module.h #include linux/fs.h #include linux/uaccess.h #include linux/io.h #include head.h #includelinux/device.hchar kbuf[128] {0}; unsigned int major; gpio_t *vir_led1; gpio_t *vir_led2; gpio_t *vir_led3; unsigned int *vir_rcc;struct class *cls; struct device *dev;//封装操作方法 int mycdev_open(struct inode *inode, struct file *file) {printk(%s:%s:%d\n,__FILE__,__func__,__LINE__);return 0; }ssize_t mycdev_read(struct file *file, char *ubuf, size_t size, loff_t *lof) {int ret;if(size sizeof(kbuf)){size sizeof(kbuf);}ret copy_to_user(ubuf,kbuf,size);if(ret){printk(copy_to_user err\n);return -EIO;}return 0; } ssize_t mycdev_write(struct file *file, const char *ubuf, size_t size, loff_t *lof) {unsigned long ret;if(size sizeof(kbuf)){size sizeof(kbuf);}ret copy_from_user(kbuf,ubuf,size);if(ret){printk(copy_from_user err\n); return -EIO; }switch(kbuf[0]){case 1:if(kbuf[1] 1) //开灯vir_led1-ODR | (0x1 10);else if(kbuf[1] 0) //关灯vir_led1-ODR (~(0x1 10));break;case 2:if(kbuf[1] 1) //开灯vir_led2-ODR | (0x1 10);else if(kbuf[1] 0) //关灯vir_led2-ODR (~(0x1 10));break;case 3:if(kbuf[1] 1) //开灯vir_led3-ODR | (0x1 8);else if(kbuf[1] 0) //关灯vir_led3-ODR (~(0x1 8));break;default:printk(输入错误\n); }return 0; } int mycdev_close(struct inode *inode, struct file *file) {printk(%s:%s:%d\n,__FILE__,__func__,__LINE__);return 0; }struct file_operations fops{.openmycdev_open,.readmycdev_read,.writemycdev_write,.releasemycdev_close, };//相关寄存器地址映射及初始化 int all_led_init(void) {//相关寄存器的内存映射vir_led1ioremap(LED1_ADDR,sizeof(gpio_t));if(vir_led1 NULL){printk(物理内存映射失败%d\n,__LINE__);return -ENOMEM;}vir_led2ioremap(LED2_ADDR,sizeof(gpio_t));if(vir_led2 NULL){printk(物理内存映射失败%d\n,__LINE__);return -ENOMEM;}vir_led3 vir_led1;vir_rccioremap(RCC_ADDR,4);if(vir_rcc NULL){printk(物理内存映射失败%d\n,__LINE__);return -ENOMEM;}printk(寄存器内存映射成功\n);//硬件寄存器的初始化(*vir_rcc) | (0x3 4);//LED1vir_led1-MODER (~(0x3 20));vir_led1-MODER | (0x1 20);vir_led1-ODR (~(0x1 10));//LED2vir_led2-MODER (~(0x3 20));vir_led2-MODER | (0x1 20);vir_led2-ODR (~(0x1 10));//LED3vir_led3-MODER (~(0x3 16));vir_led3-MODER | (0x1 16);vir_led3-ODR (~(0x1 8));printk(寄存器初始化成功\n);return 0; }//入口函数 static int __init mycdev_init(void) {major register_chrdev(0,mychrdev,fops);if(major 0){printk(字符设备驱动注册失败\n);return major;}printk(字符设备驱动注册成功:major%d\n,major);//寄存器映射及初始化all_led_init();//向上提交目录cls class_create(THIS_MODULE,mychrdev);if(IS_ERR(cls)){printk(向上提交目录失败\n);return -PTR_ERR(cls);}printk(向上提交目录成功\n);//向上提交设备节点信息int i;for(i0; i3; i){dev device_create(cls,NULL,MKDEV(major,i),NULL,mychrdev%d,i);if(IS_ERR(dev)){printk(向上提交设备节点信息失败\n);return -PTR_ERR(dev);}}printk(向上提交设备节点信息成功\n);return 0; }//出口函数 static void __exit mycdev_exit(void) {//销毁设备节点信息int i;for(i0; i3; i){device_destroy(cls,MKDEV(major,i));}//销毁目录信息class_destroy(cls);//取消物理内存的映射iounmap(vir_led1);iounmap(vir_led2);iounmap(vir_rcc);//字符设备驱动注销unregister_chrdev(major,mychrdev); }//声明 //入口函数地址 module_init(mycdev_init); //出口函数地址 module_exit(mycdev_exit); //遵循的GPL协议 MODULE_LICENSE(GPL); ---test.c---应用程序测试程序 #include stdio.h #include sys/types.h #include sys/stat.h #include fcntl.h #include unistd.h #include stdlib.h #include string.hint main(int argc,char const *argv[]) {char buf[128]{0};int fd open(/dev/mychrdev0,O_RDWR);if(fd 0){printf(设备文件打开失败\n);exit(-1);}while(1){printf(第一个字符1(LED1) 2(LED2) 3(LED3)\n);printf(第二个字符1(开灯)0(关灯)\n);printf(输入控制灯的两个字符 );fgets(buf,sizeof(buf),stdin);buf[strlen(buf)-1] \0;//像设备文件中写write(fd,buf,sizeof(buf));}close(fd);return 0; } 4.测试
http://www.hkea.cn/news/14526140/

相关文章:

  • wordpress怎么上传网站平台信息发布
  • 意大利之家设计网站wordpress显示所有文章
  • 北京网站建设公司册wordpress文章全部随机排
  • 网站模块下载公司怎么注册邮箱帐号
  • 用dw做网站怎么给链接女生学前端还是后端
  • 石景山建网站网站建设及模板使用教程
  • 做伤残鉴约号网站wordpress 内容注入
  • 徐州网站建设模板南宁网站开发
  • 学校校园网站建设小程序制作一般多少钱
  • 手机网站建设需求网站怎么做推广和宣传语
  • 搭建国外网站的步骤效果好的锦州网站建设
  • 一级a做片性视频网站网站底色什么颜色好看
  • 宝安区建设网站温州人才网招聘网官网
  • 泰安最好的网站建设公司网站建设排名
  • 江安网站建设四川网站网站建设
  • 江门网站制作网站个人网站 作品
  • 宁波建设信息港网站泰安网红打卡景点
  • 哈尔滨网站制作哪家好薇新兴县建设局网站
  • 国外优质设计网站湛江市工程建设领域网站
  • 网站seo做点提升流量wordpress网站导出
  • ps做网站横幅内贸在什么网站做
  • 使用三剑客做网站建站大师阙梅娇简介
  • 义乌做网站的电话深圳智能响应网站建设
  • 网站建设7个基本流程步骤有哪些wordpress 死
  • 常见的电子商务网站推广方式做头像网站静态
  • 青岛网站建设邓巴迪视频拍摄要求
  • 手机网站菜单代码成都私人做网站建设的公司
  • 如何零基础做网站青岛专业制作网站的公司吗
  • 惠州高端网站建设服务国家企业年报申报系统官网
  • 做网站的步骤 优帮云软件外包公司如何找客户