23、IMX6ULL学习笔记-中断下半部
一、原理图
二、中断表
三、设备树
四、说明
本次实验是在按键中断的基础上修改,原理图和设备树不变,使用中断下半部机制,介绍work和tasklet两种实现下半部的方式。
方式一:tasklet
方式二:
五、tasklet方式实现下半部的驱动程序
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/fs.h>
#include <linux/slab.h>
#include <linux/uaccess.h>
#include <linux/io.h>
#include <linux/cdev.h>
#include <linux/device.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/of_irq.h>
#include <linux/gpio.h>
#include <linux/of_gpio.h>
#include <linux/string.h>
#include <linux/irq.h>
#include <asm/mach/map.h>
#include <asm/uaccess.h>
#include <asm/io.h>
#include <linux/interrupt.h>
#define DeviceName "devicetree-key0-interrupt-tasklet" //设备驱动名称
#define DeviceNodes 1 //设备节点个数
#define KEY_NUM 0X01
#define KEY0VALUE 0X01
#define INVAKEY 0XFF
struct irq_keydesc{int gpio_num; /* io编号 */int irq_num; /* 中断号 */unsigned char value; /* 键值 */char name[25]; /* 名字 */irqreturn_t (*handler) (int, void *); /* 中断处理函数 */struct tasklet_struct tasklet;
};
/* 定义一个设备结构体 */
struct mod_struct {dev_t devid; /* 设备号 */int major; /* 主设备号 */int minor; /* 次设备号 */struct cdev cdev; /* cdev */struct class *class; /* 类 */struct device *device; /* 设备 */struct device_node *nd; /* 设备节点 */struct irq_keydesc irqkey0; /* 按键中断 */struct timer_list timer; /* 内核定时器 */atomic_t keyvalue; /* 原子变量1->整形*/atomic_t releasekey; /* 原子变量2->整形*/
};
struct mod_struct mod_device; /* 定义一个设备 */
/** @description : 打开设备* @param - inode : 传递给驱动的inode* @param - filp : 设备文件,file结构体有个叫做private_data的成员变量* 一般在open的时候将private_data指向设备结构体。* @return : 0 成功;其他 失败*/
static int key0_interrupt_open(struct inode *inode, struct file *filp)
{filp->private_data = &mod_device; /* 设置私有数据 */return 0;
}
/** @description : 从设备读取数据 * @param - filp : 要打开的设备文件(文件描述符)* @param - buf : 返回给用户空间的数据缓冲区* @param - cnt : 要读取的数据长度* @param - offt : 相对于文件首地址的偏移* @return : 读取的字节数,如果为负值,表示读取失败*/
static ssize_t key0_interrupt_read(struct file *filp, char __user *buf, size_t cnt, loff_t *offt)
{int ret = 0;unsigned char keyvalue;unsigned char releasekey;struct mod_struct *dev = filp->private_data;keyvalue = atomic_read(&dev->keyvalue);releasekey = atomic_read(&dev->releasekey);if(releasekey) { /* 有效按键 */if(keyvalue & 0x80) {keyvalue &= ~0x80;ret = copy_to_user(buf, &keyvalue, sizeof(keyvalue));} else {goto data_error;}atomic_set(&dev->releasekey, 0); /* 按下标志清零 */} else {goto data_error;}return ret;data_error:return -EINVAL;
}
/** @description : 向设备写数据 * @param - filp : 设备文件,表示打开的文件描述符* @param - buf : 要写给设备写入的数据* @param - cnt : 要写入的数据长度* @param - offt : 相对于文件首地址的偏移* @return : 写入的字节数,如果为负值,表示写入失败*/
static ssize_t key0_interrupt_write(struct file *filp, const char __user *buf,size_t cnt, loff_t *offt)
{return 0;
}
/** @description : 关闭/释放设备* @param - filp : 要关闭的设备文件(文件描述符)* @return : 0 成功;其他 失败*/static int key0_interrupt_release(struct inode *inode, struct file *filp)
{return 0;
}
/* 设备操作函数 */
static struct file_operations beep_fops = {.owner = THIS_MODULE,.open = key0_interrupt_open,.read = key0_interrupt_read,.write = key0_interrupt_write,.release = key0_interrupt_release,
};
/* 按键中断处理函数 */
static irqreturn_t key0_handler(int irq, void *dev_id)
{struct mod_struct *dev = dev_id;#if 0dev->timer.data = (volatile long)dev_id;mod_timer(&dev->timer, jiffies + msecs_to_jiffies(20)); /* 20ms定时 */#endiftasklet_schedule(&dev->irqkey0.tasklet);return IRQ_HANDLED;
}
/* tasklet (下半部)*/
static void key_tasklet(unsigned long data)
{struct mod_struct *dev = (struct mod_struct*)data;dev->timer.data = data;mod_timer(&dev->timer, jiffies + msecs_to_jiffies(20)); /* 20ms定时 */
}/* 定时器处理函数 */
static void timer_func(unsigned long arg) {int value = 0;struct mod_struct *dev = (struct mod_struct*)arg;value = gpio_get_value(dev->irqkey0.gpio_num);if(value == 0) { /* 按下 */atomic_set(&dev->keyvalue, dev->irqkey0.value);/*=0x01*/} else if(value == 1) { /* 释放 */atomic_set(&dev->keyvalue, 0X80 | (dev->irqkey0.value));atomic_set(&dev->releasekey, 1); /* 完成的按键过程 */}
}
/** @description : 按键初始化函数* @param : dev* @return : 无*/
static int key_init(struct mod_struct *dev)
{int ret = 0;/* 1、获取设备节点:/devicetree-leds-pincrl */dev->nd = of_find_node_by_path("/devicetree-key0-interrupt");if(dev->nd == NULL) {printk("devicetree-key0-interrupt node not find!\r\n");ret = -EINVAL;goto fail_fd;} else {printk("devicetree-key0-interrupt node find!\r\n");}/* 2、从设备节点下的led-gpio属性里获取gpio编号 */dev->irqkey0.gpio_num = of_get_named_gpio(dev->nd,"key-gpio", 0);if(dev->irqkey0.gpio_num < 0) {printk("can't get key-gpio\r\n");ret = -EINVAL;goto fail_gpio;}printk("key-gpio num = %d\r\n", dev->irqkey0.gpio_num);/*3、申请gpio(检查是否被占用)*/sprintf(dev->irqkey0.name,"%s","key0-gpio-interrupt");ret = gpio_request(dev->irqkey0.gpio_num,dev->irqkey0.name);if(ret){ret = -EBUSY;printk("IO %d busy,can't request!\r\n",dev->irqkey0.gpio_num);goto fail_ioreq;}/*4、设置key0为输入 */ret = gpio_direction_input(dev->irqkey0.gpio_num);if(ret < 0) {printk("can't set gpio!\r\n");goto fail_ioset;}/*5、根据IO编号获取其中断号*/dev->irqkey0.irq_num=gpio_to_irq(dev->irqkey0.gpio_num);
#if 0dev->irqkey0.irq_num = irq_of_parse_and_map(dev->nd,0);
#endif/*6、设置中断函数*/dev->irqkey0.handler = key0_handler;dev->irqkey0.value = KEY0VALUE;/*7、注册中断*/ret = request_irq(dev->irqkey0.irq_num,dev->irqkey0.handler,IRQF_TRIGGER_RISING|IRQF_TRIGGER_FALLING,dev->irqkey0.name,&mod_device);if(ret){printk("irq %d request failed!\r\n", dev->irqkey0.irq_num);goto fail_irq;}tasklet_init(&dev->irqkey0.tasklet, key_tasklet, (unsigned long)dev);/*8、初始化定时器*/init_timer(&mod_device.timer);mod_device.timer.function = timer_func;return 0;
fail_irq:
fail_ioset:gpio_free(dev->irqkey0.gpio_num);
fail_ioreq:
fail_gpio:
fail_fd:return ret;
}
/** @description : 驱动出口函数* @param : 无* @return : 无*/
static int __init key0_interrupt_init(void)
{int ret = 0;
/*一、 注册字符设备驱动 *//* 1、创建设备号 */if (mod_device.major){ mod_device.devid = MKDEV(mod_device.major,0);//设备号起始点(major,0)//设备号起始点开始,申请DeviceNodes个设备号ret = register_chrdev_region(mod_device.devid,DeviceNodes,DeviceName);} else {ret = alloc_chrdev_region(&mod_device.devid,0,DeviceNodes,DeviceName); /* 申请设备号 */mod_device.major = MAJOR(mod_device.devid); /* 获取分配号的主设备号 */mod_device.minor = MINOR(mod_device.devid); /* 获取分配号的次设备号 */ }if(ret < 0){ printk("设备号申请失败\r\n");goto fail_chrdev; }printk("mod_device major=%d,minor=%d\r\n",mod_device.major,mod_device.minor); /* 2、初始化cdev并添加cdev */mod_device.cdev.owner = THIS_MODULE;cdev_init(&mod_device.cdev,&beep_fops);ret = cdev_add(&mod_device.cdev,mod_device.devid,DeviceNodes);if(ret < 0){ printk("添加cdev失败!\r\n");goto fail_cdev; }/* 3、创建类 */mod_device.class = class_create(THIS_MODULE,DeviceName);if (IS_ERR(mod_device.class)) { ret = PTR_ERR(mod_device.class);goto fail_class; } /* 4、创建设备节点*/mod_device.device = device_create(mod_device.class,NULL,mod_device.devid,NULL,"DeviceName");if (IS_ERR(mod_device.device)) { ret = PTR_ERR(mod_device.device);goto fail_device; }/* 5、初始化IO */ret = key_init(&mod_device);if(ret < 0) {goto fail_keyinit;}/* 6、初始化原子变量 */atomic_set(&mod_device.keyvalue, INVAKEY);/*mod_device.keyvalue=INVAKEY*/atomic_set(&mod_device.releasekey, 0);/*mod_device.releasekey=0*/
/*X、模块加载失败处理部分*/
fail_keyinit:device_destroy(mod_device.class,mod_device.devid);
fail_device: class_destroy(mod_device.class);
fail_class: cdev_del(&mod_device.cdev);
fail_cdev:unregister_chrdev_region(mod_device.devid,DeviceNodes);
fail_chrdev:return ret;
}
/** @description : 驱动出口函数* @param : 无* @return : 无*/
static void __exit key0_interrupt_exit(void)/*按照相反顺序注销*/
{/*1、释放中断*/free_irq(mod_device.irqkey0.irq_num, &mod_device);/*2、内核定定时器注销部分*/del_timer_sync(&mod_device.timer);/* 删除timer *//*3、LED设备注销部分*/gpio_free(mod_device.irqkey0.gpio_num);/*注销gpio*/ /*4、设备驱动注销部分*/ device_destroy(mod_device.class,mod_device.devid);/*注销设备节点*/class_destroy(mod_device.class);/*注销类*/cdev_del(&mod_device.cdev);/*注销cdev*/unregister_chrdev_region(mod_device.devid,DeviceNodes);/*注销chrdev*/
}
module_init(key0_interrupt_init);
module_exit(key0_interrupt_exit);
MODULE_LICENSE("GPL");
六、work方式实现下半部的驱动程序
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/fs.h>
#include <linux/slab.h>
#include <linux/uaccess.h>
#include <linux/io.h>
#include <linux/cdev.h>
#include <linux/device.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <linux/of_irq.h>
#include <linux/gpio.h>
#include <linux/of_gpio.h>
#include <linux/string.h>
#include <linux/irq.h>
#include <asm/mach/map.h>
#include <asm/uaccess.h>
#include <asm/io.h>
#include <linux/interrupt.h>
#define DeviceName "devicetree-key0-interrupt-work" //设备驱动名称
#define DeviceNodes 1 //设备节点个数
#define KEY_NUM 0X01
#define KEY0VALUE 0X01
#define INVAKEY 0XFF
struct irq_keydesc{int gpio_num; /* io编号 */int irq_num; /* 中断号 */unsigned char value; /* 键值 */char name[25]; /* 名字 */irqreturn_t (*handler) (int, void *); /* 中断处理函数 */struct tasklet_struct tasklet;
};
/* 定义一个设备结构体 */
struct mod_struct {dev_t devid; /* 设备号 */int major; /* 主设备号 */int minor; /* 次设备号 */struct cdev cdev; /* cdev */struct class *class; /* 类 */struct device *device; /* 设备 */struct device_node *nd; /* 设备节点 */struct irq_keydesc irqkey0; /* 按键中断 */struct timer_list timer; /* 内核定时器 */struct work_struct work; /* 工作队列 */atomic_t keyvalue; /* 原子变量1->整形*/atomic_t releasekey; /* 原子变量2->整形*/
};
struct mod_struct mod_device; /* 定义一个设备 */
/** @description : 打开设备* @param - inode : 传递给驱动的inode* @param - filp : 设备文件,file结构体有个叫做private_data的成员变量* 一般在open的时候将private_data指向设备结构体。* @return : 0 成功;其他 失败*/
static int key0_interrupt_open(struct inode *inode, struct file *filp)
{filp->private_data = &mod_device; /* 设置私有数据 */return 0;
}
/** @description : 从设备读取数据 * @param - filp : 要打开的设备文件(文件描述符)* @param - buf : 返回给用户空间的数据缓冲区* @param - cnt : 要读取的数据长度* @param - offt : 相对于文件首地址的偏移* @return : 读取的字节数,如果为负值,表示读取失败*/
static ssize_t key0_interrupt_read(struct file *filp, char __user *buf, size_t cnt, loff_t *offt)
{int ret = 0;unsigned char keyvalue;unsigned char releasekey;struct mod_struct *dev = filp->private_data;keyvalue = atomic_read(&dev->keyvalue);releasekey = atomic_read(&dev->releasekey);if(releasekey) { /* 有效按键 */if(keyvalue & 0x80) {keyvalue &= ~0x80;ret = copy_to_user(buf, &keyvalue, sizeof(keyvalue));} else {goto data_error;}atomic_set(&dev->releasekey, 0); /* 按下标志清零 */} else {goto data_error;}return ret;data_error:return -EINVAL;
}
/** @description : 向设备写数据 * @param - filp : 设备文件,表示打开的文件描述符* @param - buf : 要写给设备写入的数据* @param - cnt : 要写入的数据长度* @param - offt : 相对于文件首地址的偏移* @return : 写入的字节数,如果为负值,表示写入失败*/
static ssize_t key0_interrupt_write(struct file *filp, const char __user *buf,size_t cnt, loff_t *offt)
{return 0;
}
/** @description : 关闭/释放设备* @param - filp : 要关闭的设备文件(文件描述符)* @return : 0 成功;其他 失败*/static int key0_interrupt_release(struct inode *inode, struct file *filp)
{return 0;
}
/* 设备操作函数 */
static struct file_operations beep_fops = {.owner = THIS_MODULE,.open = key0_interrupt_open,.read = key0_interrupt_read,.write = key0_interrupt_write,.release = key0_interrupt_release,
};
/* 按键中断处理函数 */
static irqreturn_t key0_handler(int irq, void *dev_id)
{struct mod_struct *dev = dev_id;#if 0dev->timer.data = (volatile long)dev_id;mod_timer(&dev->timer, jiffies + msecs_to_jiffies(20)); /* 20ms定时 */#endif//tasklet_schedule(&dev->irqkey0.tasklet);schedule_work(&dev->work);return IRQ_HANDLED;
}
/* tasklet (下半部方法1)*/
static void key_tasklet(unsigned long data)
{struct mod_struct *dev = (struct mod_struct*)data;dev->timer.data = data;mod_timer(&dev->timer, jiffies + msecs_to_jiffies(20)); /* 20ms定时 */
}
/* work (下半部方法2)*/
static void key_work(struct work_struct *work)
{struct mod_struct *dev = container_of(work, struct mod_struct, work);dev->timer.data = (unsigned long)dev;mod_timer(&dev->timer, jiffies + msecs_to_jiffies(20)); /* 20ms定时 */
}
/* 定时器处理函数 */
static void timer_func(unsigned long arg) {int value = 0;struct mod_struct *dev = (struct mod_struct*)arg;value = gpio_get_value(dev->irqkey0.gpio_num);if(value == 0) { /* 按下 */atomic_set(&dev->keyvalue, dev->irqkey0.value);/*=0x01*/} else if(value == 1) { /* 释放 */atomic_set(&dev->keyvalue, 0X80 | (dev->irqkey0.value));atomic_set(&dev->releasekey, 1); /* 完成的按键过程 */}
}
/** @description : 按键初始化函数* @param : dev* @return : 无*/
static int key_init(struct mod_struct *dev)
{int ret = 0;/* 1、获取设备节点:/devicetree-leds-pincrl */dev->nd = of_find_node_by_path("/devicetree-key0-interrupt");if(dev->nd == NULL) {printk("devicetree-key0-interrupt node not find!\r\n");ret = -EINVAL;goto fail_fd;} else {printk("devicetree-key0-interrupt node find!\r\n");}/* 2、从设备节点下的led-gpio属性里获取gpio编号 */dev->irqkey0.gpio_num = of_get_named_gpio(dev->nd,"key-gpio", 0);if(dev->irqkey0.gpio_num < 0) {printk("can't get key-gpio\r\n");ret = -EINVAL;goto fail_gpio;}printk("key-gpio num = %d\r\n", dev->irqkey0.gpio_num);/*3、申请gpio(检查是否被占用)*/sprintf(dev->irqkey0.name,"%s","key0-gpio-interrupt");ret = gpio_request(dev->irqkey0.gpio_num,dev->irqkey0.name);if(ret){ret = -EBUSY;printk("IO %d busy,can't request!\r\n",dev->irqkey0.gpio_num);goto fail_ioreq;}/*4、设置key0为输入 */ret = gpio_direction_input(dev->irqkey0.gpio_num);if(ret < 0) {printk("can't set gpio!\r\n");goto fail_ioset;}/*5、根据IO编号获取其中断号*/dev->irqkey0.irq_num=gpio_to_irq(dev->irqkey0.gpio_num);
#if 0dev->irqkey0.irq_num = irq_of_parse_and_map(dev->nd,0);
#endif/*6、设置中断函数*/dev->irqkey0.handler = key0_handler;dev->irqkey0.value = KEY0VALUE;/*7、注册中断*/ret = request_irq(dev->irqkey0.irq_num,dev->irqkey0.handler,IRQF_TRIGGER_RISING|IRQF_TRIGGER_FALLING,dev->irqkey0.name,&mod_device);if(ret){printk("irq %d request failed!\r\n", dev->irqkey0.irq_num);goto fail_irq;}INIT_WORK(&dev->work,key_work);//tasklet_init(&dev->irqkey0.tasklet, key_tasklet, (unsigned long)dev);/*8、初始化定时器*/init_timer(&mod_device.timer);mod_device.timer.function = timer_func;return 0;
fail_irq:
fail_ioset:gpio_free(dev->irqkey0.gpio_num);
fail_ioreq:
fail_gpio:
fail_fd:return ret;
}
/** @description : 驱动出口函数* @param : 无* @return : 无*/
static int __init key0_interrupt_init(void)
{int ret = 0;
/*一、 注册字符设备驱动 *//* 1、创建设备号 */if (mod_device.major){ mod_device.devid = MKDEV(mod_device.major,0);//设备号起始点(major,0)//设备号起始点开始,申请DeviceNodes个设备号ret = register_chrdev_region(mod_device.devid,DeviceNodes,DeviceName);} else {ret = alloc_chrdev_region(&mod_device.devid,0,DeviceNodes,DeviceName); /* 申请设备号 */mod_device.major = MAJOR(mod_device.devid); /* 获取分配号的主设备号 */mod_device.minor = MINOR(mod_device.devid); /* 获取分配号的次设备号 */ }if(ret < 0){ printk("设备号申请失败\r\n");goto fail_chrdev; }printk("mod_device major=%d,minor=%d\r\n",mod_device.major,mod_device.minor); /* 2、初始化cdev并添加cdev */mod_device.cdev.owner = THIS_MODULE;cdev_init(&mod_device.cdev,&beep_fops);ret = cdev_add(&mod_device.cdev,mod_device.devid,DeviceNodes);if(ret < 0){ printk("添加cdev失败!\r\n");goto fail_cdev; }/* 3、创建类 */mod_device.class = class_create(THIS_MODULE,DeviceName);if (IS_ERR(mod_device.class)) { ret = PTR_ERR(mod_device.class);goto fail_class; } /* 4、创建设备节点*/mod_device.device = device_create(mod_device.class,NULL,mod_device.devid,NULL,"DeviceName");if (IS_ERR(mod_device.device)) { ret = PTR_ERR(mod_device.device);goto fail_device; }/* 5、初始化IO */ret = key_init(&mod_device);if(ret < 0) {goto fail_keyinit;}/* 6、初始化原子变量 */atomic_set(&mod_device.keyvalue, INVAKEY);/*mod_device.keyvalue=INVAKEY*/atomic_set(&mod_device.releasekey, 0);/*mod_device.releasekey=0*/
/*X、模块加载失败处理部分*/
fail_keyinit:device_destroy(mod_device.class,mod_device.devid);
fail_device: class_destroy(mod_device.class);
fail_class: cdev_del(&mod_device.cdev);
fail_cdev:unregister_chrdev_region(mod_device.devid,DeviceNodes);
fail_chrdev:return ret;
}
/** @description : 驱动出口函数* @param : 无* @return : 无*/
static void __exit key0_interrupt_exit(void)/*按照相反顺序注销*/
{/*1、释放中断*/free_irq(mod_device.irqkey0.irq_num, &mod_device);/*2、内核定定时器注销部分*/del_timer_sync(&mod_device.timer);/* 删除timer *//*3、LED设备注销部分*/gpio_free(mod_device.irqkey0.gpio_num);/*注销gpio*/ /*4、设备驱动注销部分*/ device_destroy(mod_device.class,mod_device.devid);/*注销设备节点*/class_destroy(mod_device.class);/*注销类*/cdev_del(&mod_device.cdev);/*注销cdev*/unregister_chrdev_region(mod_device.devid,DeviceNodes);/*注销chrdev*/
}
module_init(key0_interrupt_init);
module_exit(key0_interrupt_exit);
MODULE_LICENSE("GPL");
七、APP测试程序
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/ioctl.h>
/**argc:应用程序参数个数*argv[]:具体的参数内容,字符串形式 *./imx6uirqAPP <filename> * ./imx6uirqAPP /dev/mx6uirq*/
int main(int argc, char *argv[])
{int fd, ret;char *filename;unsigned char data;if(argc != 2) {printf("Error Usage!\r\n");return -1;}filename = argv[1];fd = open(filename, O_RDWR);if(fd < 0) {printf("file %s open failed!\r\n", filename);return -1;}/* 循环读取 */while(1) {ret = read(fd, &data, sizeof(data));if(ret < 0) { } else {if(data)printf("key value = %#x\r\n", data);}}close(fd);return 0;
}
八、看完别走,你还有两件事没做
1、欢迎加入全国大学生电子交流群下载源码历程
2、点个赞呗
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- 金果子数据:五月份币安交易营收1.35亿美元,OKEx营收1.13亿美元、同比增长69%。
根据金果子数据(JGZ.COM)监测显示,五月份小市值币种轮番上涨,带动市场交易情绪,交易所营大额上涨,币安营收1.35亿美元,同比增长59%;OKEx营收1.13亿美元,同比增长69%;火币营收0.95亿美元,同比增长14.5%。 原文链接:https://www.tuoluocaijing.cn/kuaixun/detail-121…...
2024/5/2 17:55:27 - 数据结构---------线性表的实现
接口的实现package 接口; import java.util.Comparator; //实现Iterable接口主要是为了进行foreach迭代 public interface List<E> extends Iterable<E> {//插入一个元素public void add(E element);//根据角标插入一个元素public void add(int index,E element);/…...
2024/4/15 4:45:18 - 使用自己的INDEMIND相机来运行ORBSLAM2单目,双目和深度模式(小觅相机和realsense通用)
流程一览配置ROSROS环境准备(以16.04 ROS Kinetic为例)创建自己的工作空间:配置ORBSLAM编译ORBSLAM2 ROS常见错误及解决运行build-ros.sh时出现问题一:运行build-ros.sh时出现问题二:这个问题的核心在与链接boost库出了问题:安装及配置相机INDEMIND相机SDK编译ROS样例ORBSLAM2…...
2024/5/7 20:26:38 - django传递数据给js
1. views.py中的代码 def home03(request):list01 = ["mayanan", 28]dict01 = {"name": "mayajun", "age": 23, "gender": True}return render(request, "../templates/learn/home03.html",{"list01": …...
2024/5/7 17:36:31 - ThreadPoolExecutor coreSize、maxPoolSize 的一个理解误区
发现问题 coreSize=0、maxPoolSize=10,队列长度=100 投递了50个任务(队列未满),但是只有一个线程在运行,而不是预期的10个。 参数的定义 查阅资料,maxPoolSize > coreSize 的部分,在2个时机下会创建:coreSize=0,且池中线程数=0 。至少得有一个线程去执行。 队列已满…...
2024/5/7 12:39:34 - Python制作AI贪吃蛇,很多很多细节、思路都写下来了!
前提:本文实现AI贪吃蛇自行对战,加上人机对战,读者可再次基础上自行添加电脑VS电脑和玩家VS玩家(其实把人机对战写完,这2个都没什么了,思路都一样)实现效果:很多人学习python,不知道从何学起。 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。 很多…...
2024/4/15 4:45:11 - Ethereum Core Devs Meeting #88 | 以太坊核心开发者会议第88期
会议:以太坊核心开发者会议 #88会议日期: 2020年5月29日,星期五会议时长:1.5小时会议视频链接:https://youtu.be/UJ1jK73rKdk会议日程:1.柏林EIP – 集成更新 -EIP-2315:用于EVM的简单子程序。-EIP-2537:BLS12-381曲线操作2.EFI EIP回顾-EIP-2046: 降低对预编译程序进行…...
2024/4/22 9:26:08 - kvm虚拟化
1. 虚拟化介绍 虚拟化是云计算的基础。简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的 CPU、内存、IO 硬件资源,但逻辑上虚拟机之间是相互隔离的。 物理机我们一般称为宿主机(Host),宿主机上面的虚拟机称为客户机(Guest)。 那么 Host 是…...
2024/4/27 14:11:42 - vue+iview兼容IE9及以上记录
IE不支持ES6语法安装解码器npm install --save babel-polyfill //转码器,可以将ES6代码转为ES5代码修改webpack.base.conf.jsentry: {// app: ./src/main.jsapp: [babel-polyfill, ./src/main.js] //兼容IE运行},在main引用import babel-polyfill兼容dataset,ie10及以下不支…...
2024/4/24 12:06:37 - 区块链探索(一)——IPFS私有网络搭建与使用
区块链探索(一)——WINDOWS下IPFS私有网络搭建与使用 最近因为工作需求新接触了IPFS(IPFS百科)。后面可能会基于IPFS进行区块链创新技术的研究和开发。 首先我们花了一个周末进行私有网络搭建、应用等探索。其中主要利用网上的一些资源,但是也碰到了一些独特的问题网上不太…...
2024/4/24 12:06:36 - 屏蔽运营商配置文件更新IOS13.5亲测可用
原理剖析: 一、篡改运营商配置文件版本号,即修改配置文件的版本号值比将将更新的版本号更高的值。比如,当前手机上的运营商配置文件的版本号是18.0,系统待更新的版本号是18.1,那么将手机上的运营商配置文件版本号修改为18.2甚至是19.0,那么系统就不会提示更新啦。 二、删…...
2024/5/2 18:46:54 - JS-WebAPI笔记二次总结(含兼容性处理)
一、API 和 Web API 1、API API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序 与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。 简单理解: API 是给程序员提供的一种工…...
2024/4/24 12:06:42 - IntelliJ IDEA Community Edition 2018.2 x64 详细入门教程
下载地址链接:https://pan.baidu.com/s/1CgwfSA2OodIE9KIWEIG4Sw 提取码:td6d安装教程双击运行 ideaIC-2018.2.exe如下图。选择安装路径(记住安装路径)如下图。勾选64位,勾选关联文件后缀名如下图。默认值即可Install,如下图。开始安装,等待安装完成,如下图。去掉勾选…...
2024/4/24 12:06:33 - java面试之SpringCloud
“说说Spring Cloud吧” 如今所有的JAVA面试中,都避不开Spring这个大玩意,开发的时候使用的很溜,但到了面试中却总是会被为难的一无是处。除去Spring的源码级理解,今天就SpringCloud这一大框架来梳理下常见的一些面试点。说说SpringCloud都有哪些组件我们先简单的过一…...
2024/4/24 12:06:32 - 文档对象模型
什么是文档对象模型 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口。 它可以动态的访问程序和脚本,更新其内容、结构和www文档的风格。文档可以进一步被处理,处理的结果可以加入到当前页面 DOM是一种基于树的API文档,他…...
2024/4/24 12:06:31 - windows网络命令:ping、ipconfig、tracert、netstat、arp
ping www.baidu.com,从命令执行开始,到结果返回总共需要经过以下几步:1、DNS解析:www.baidu.com解析成具体的IP地址,因为数据包在网络上传输时只认IP地址。2、查找路由表:IP地址以后,接下来就是要查找路由,路由的作用是决定数据包的下一跳地址。3、查找ARP表:下一跳IP…...
2024/5/5 8:01:18 - Hadoop授权令牌解释(原标题 Hadoop Delegation Tokens Explained)
转载:https://blog.cloudera.com/hadoop-delegation-tokens-explained/ 很好的文章,但是要翻墙转载给国内的伙伴,有问题请联系删除第一部分谷歌翻译版;下边有英语版Apache Hadoop的安全性是在2009年左右设计和实施的,此后一直保持稳定。但是,由于缺少有关此领域的文档,因…...
2024/5/6 19:15:08 - 刚去面试Spring Cloud 问了我35个问题,全部分享出来!
对于目前来说,微服务已经是程序员必会的技能之一了。Spring Cloud 作为一个优质的微服务框架,已经被很多公司使用。以下小编给大家整理35道Spring Cloud 的知识点,或者说是面试题都不冲突。后续还会继续更新⛽️❞1.什么是SpringCloud?Spring Cloud为开发人员提供了工具,以…...
2024/4/15 4:45:28 - 哪些 Python 库让你相见恨晚?
哪些 Python 库让你相见恨晚?【转】 - 狂师 - 博客园 https://www.cnblogs.com/jinjiangongzuoshi/p/6596268.html网页抓取和数据处理的Python库-电子发烧友网 http://www.elecfans.com/d/667380.htmljobbole/awesome-python-cn: Python资源大全中文版,包括:Web框架、网络爬…...
2024/4/20 5:47:14 - Serverless 国内发展的纵向观察
云计算正在各领域持续深化其影响力,同样,各领域下日益变化的需求,也在倒逼云计算不断进行自我优化。2008 年可以说是大家比较公认的云计算元年,因为在这一年中越来越多的行业巨头和玩家注意到这块市场并开始入局。近年来,随着企业数字化转型在全球范围的普及,云计算产业得…...
2024/4/30 4:31:26
最新文章
- 初期Linux
一,系统分为 1.1window系统 个人 :win7,win8,Win10,Win11服务器版:window server 2003,window server 2008 1.2Linux系统 centos7redhatubantukali 1.3什么是Linux? Linux是基…...
2024/5/7 22:21:32 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/5/7 10:36:02 - composer常见错误解决
在Java中,常见的问题和解决方法包括: 内存不足错误:Java应用程序在运行时可能会遇到内存不足的错误。可以通过增加JVM的堆内存大小来解决,可以通过设置-Xms和-Xmx参数来指定初始堆大小和最大堆大小。 java -Xms2G -Xmx4G YourAppl…...
2024/5/5 8:38:08 - Topaz Video AI for Mac v5.0.0激活版 视频画质增强软件
Topaz Video AI for Mac是一款功能强大的视频处理软件,专为Mac用户设计,旨在通过人工智能技术为视频编辑和增强提供卓越的功能。这款软件利用先进的算法和深度学习技术,能够自动识别和分析视频中的各个元素,并进行智能修复和增强&…...
2024/5/5 8:52:36 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/7 5:50:09 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/7 9:45:25 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/5/4 23:54:56 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/7 14:25:14 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/5/4 23:54:56 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/5/4 23:55:05 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/5/4 23:54:56 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/5/7 11:36:39 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/5/4 23:54:56 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/6 1:40:42 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/5/4 23:54:56 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/5/4 23:55:17 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/5/7 9:26:26 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/5/4 23:54:56 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/4 23:55:06 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/5/5 8:13:33 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/5/4 23:55:16 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/5/4 23:54:58 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/6 21:42:42 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/5/4 23:54:56 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57