实验六 直流电机脉宽调制调速 pwm应用实例 C51实现 附累加进位法证明
实验内容
- 在液晶显示屏上显示出直流电机的:当前转速、低目标转速、高目标转速。
- 固定向P1.1输出0,然后测量每秒钟电机转动的转数,将其显示在数码管,每秒刷新一次即可。
- 使用脉宽调制的方法,动态调整向P1.1输出的内容,使得电机转速能够稳定在一个预定值附近,同时实时显示当前转速。
- 根据输入修改电机得目标转速值,设置两个转速目标值:低转速和高转速。
- 每隔一秒钟读取两个开关的状态,如果S1按下,动态调整输出,使得电机转速能够稳定到低转速目标值附近,如果S2按下,动态调整输出,使得电机转速能够稳定到高转速目标值附近。交替显示目标值和当前转速值。
文章目录
- 1 基础知识
- 1.1 占空比
- 1.2 累加进位法:
- 2 思考题
- 3 设置INT0为下降沿触发
- 3.1 控制寄存器 TCON
- 4 完整代码
1 基础知识
1.1 占空比
使用单片机实现PWM,就是根据预定的占空比δ来输出0和1,这里δ就是控制变量。最简单的办法就是以某个时间单位(如0.1ms,相当于10kHz)为基准,在前N段输出1,后M-N段输出0,总体的占空比就是N/M。这种方法由于0和1分布不均匀,所以要求基准频率要足够高,否则会出现颠簸现象
1.2 累加进位法:
设置一个累加变量x,每次加N,若结果大于等于M,则输出1,并减去M;否则输出0。这样整体的占空比也是N/M。在实验中取M=256可以使程序更加简单。
另外,由于本实验板的设计,输出0使电机工作。因此对于本实验,上面所说的0和1要翻转过来用。
(注意: 结果大于等于M,不是大于M,具体原因看思考题第二问)
这次我把思考题放到了前面,因为好不容易画一回图,必须得放前面( •̀ ω •́ )✧
2 思考题
- 讨论脉宽调速和电压调速的区别、优缺点和应用范围。
- 区别:
脉宽调制(Pulse Width Modulation,PWM)是一种能够通过开关量输出达到模拟量输出效果的方法。脉宽调速就是利用脉宽调制,以数字方式调节电机转速。
而电压调速,则是通过:直接调节电压这个模拟量来调节电机转速。 - 优缺点(脉宽调速对应于PWM,电压调速对应于模拟电路):
尽管模拟控制看起来可能直观而简单,但它并不总是非常经济或可行的。其中一点就是,模拟电路容易随时间漂移,因而难以调节。能够解决这个问题的精密模拟电路可能非常庞大、笨重(如老式的家庭立体声设备)和昂贵。模拟电路还有可能严重发热,其功耗相对于工作元件两端电压与电流的乘积成正比。模拟电路还可能对噪声很敏感,任何扰动或噪声都肯定会改变电流值的大小。
- 通过以数字方式控制模拟电路,可以大幅度降低系统的成本和功耗。此外,许多微控制器和DSP已经在芯片上包含了PWM控制器,这使数字控制的实现变得更加容易了。
- PWM的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。让信号保持为数字形式可将噪声影响降到最小。噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,也才能对数字信号产生影响。(来源)
应用范围:
电压调速工作时不能超过特定电压,优点是机械特性较硬并且电压降低后硬度不变,稳定性好,适用于对稳定性要求较高的环境。脉宽调速可大大节省电量,具有很强的抗噪性,且节 约空间、比较经济,适用于低频大功率控制。(这段是从上届学长学姐那摘的,因为我没找到相关的资料。。。)
-
说明程序原理中累加进位法的正确性。
先来举几个例子感受和验证一下
占空比:128/256=1/2
占空比:64/256=1/4
占空比:192/256=3/4
占空比:129/256
注意第二排的“128 1”那块。从x=129到第二次x=129之间有256个时间片,其中有129个是高电平,127个是低电平,多出来的那个高电平就是“128 1”里的那个x=1时的高电平。
证明:
x+N<M的为低,x从0开始,到刚好x+N>=M之前有(M/N-1)次低电平,之后会有一次高电平。
这是从平均的角度来说的,即:平均(M/N-1)次低电平后会有一次高电平
因为M/N不一定能恰好除尽,所以我们两边同时乘上N
得 :(M-N)次低电平 N次高电平。恰好对应于占空比的概念。 -
计算转速测量的最大可能误差,讨论减少误差的办法。
最多差1转。
如果转轮的那个孔起始位置在光电对管旁边且刚好挡住光电对管,也就是只要稍微转一转就会触发一次外部中断,那测第一转的时候就会多算一转。1s时间到的时候也可能恰好挡住光电对管,那就会少算一转。
减少误差的办法:
如果在变速过程中我觉得这种误差是无法避免的,如果是最后稳定状态了,那相邻两次测量结果取平均就好了,因为你上次多算一转,下次就会少算一转,一取平均刚刚好。
3 设置INT0为下降沿触发
IT0=1;
3.1 控制寄存器 TCON
控制寄存器 TCON 的高 4 位存放定时器的运行控制位和溢出标志位,低 4 位 存放外部中断控制位,格式如下:
ITn 是外部中断的触发方式控制位。当 ITn=0 时是电平触发方式,外部引脚 出现低电平时产生中断请求。当 ITn=1 时是边沿触发方式。
4 完整代码
注意:本代码的显示没有完全按照实验内容要求的“交替显示目标值和当前转速值”而是同时显示两者了,因为我觉着这样比较清楚。
#include <REG51.h>
#include <intrins.h>
int cur_speed = 0, low_target = 100, high_target = 180;
int speed = 0;
int x = 0;
int M = 512;
int CUR_N = 96, LOW_N = 72, HIGH_N = 128; //这是M=512时对应的参数
//之所以选择512而不是256主要是因为接近目标速度时更容易进行微小的调整//int CUR_N=48,LOW_N=36,HIGH_N=64;//这是M=256时对应的参数
//N 为48时 转速为130-155zhuan/s
//64 190z/s 这个转速只是个大概,不同的机器,相同的机器不同的时间都会有差别
//36 94z/s//LCD显示部分对实验5的LCD显示部分稍作修改就行
enum SCREEN_CHOICE
{LEFT, //左半屏RIGHT, //右半屏WHOLE //全屏
};
char DISPALY_PAGE = 0;
//定义LCD引脚
#define LCD_DATA P2 //P2口为LCD的数据口
sbit RST = P1 ^ 5; //复位引脚
sbit CS1 = P1 ^ 7; //左半屏选择
sbit CS2 = P1 ^ 6; //右半屏选择
sbit BUSY = P2 ^ 7; //BUSY位
sbit E = P3 ^ 3; //使能引脚
sbit RW = P3 ^ 4; //读/写选择器引脚(R/W)
sbit RS = P3 ^ 5; //数据/命令选择器引脚(R/S)
//LCD 汉字字码 一个汉字32个字节,分别为“当”,“前”,“转”,“速”,“低”,“目”,“标”,“高”
char code dang[] = {0x00, 0x40, 0x42, 0x44, 0x58, 0x40, 0x40, 0x7F, 0x40, 0x40, 0x50, 0x48, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x40, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0xFF, 0x00, 0x00, 0x00};
char code qian[] = {0x08, 0x08, 0xE8, 0x29, 0x2E, 0x28, 0xE8, 0x08, 0x08, 0xC8, 0x0C, 0x0B, 0xE8, 0x08, 0x08, 0x00, 0x00, 0x00, 0xFF, 0x09, 0x49, 0x89, 0x7F, 0x00, 0x00, 0x0F, 0x40, 0x80, 0x7F, 0x00, 0x00, 0x00};
char code zhuan[] = {0xC8, 0xB8, 0x8F, 0xE8, 0x88, 0x88, 0x40, 0x48, 0x48, 0xE8, 0x5F, 0x48, 0x48, 0x48, 0x40, 0x00, 0x08, 0x18, 0x08, 0xFF, 0x04, 0x04, 0x00, 0x02, 0x0B, 0x12, 0x22, 0xD2, 0x0A, 0x06, 0x00, 0x00};
char code su[] = {0x40, 0x40, 0x42, 0xCC, 0x00, 0x04, 0xF4, 0x94, 0x94, 0xFF, 0x94, 0x94, 0xF4, 0x04, 0x00, 0x00, 0x00, 0x40, 0x20, 0x1F, 0x20, 0x48, 0x44, 0x42, 0x41, 0x5F, 0x41, 0x42, 0x44, 0x48, 0x40, 0x00};
char code di[] = {0x00, 0x80, 0x60, 0xF8, 0x07, 0x00, 0xFC, 0x84, 0x84, 0x84, 0xFE, 0x82, 0x83, 0x82, 0x80, 0x00, 0x01, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x40, 0x20, 0x00, 0x41, 0x8E, 0x30, 0x40, 0xF8, 0x00};
char code mu[] = {0x00, 0x00, 0xFE, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0xFF, 0x00, 0x00, 0x00};
char code biao[] = {0x10, 0x10, 0xD0, 0xFF, 0x90, 0x10, 0x20, 0x22, 0x22, 0x22, 0xE2, 0x22, 0x22, 0x22, 0x20, 0x00, 0x04, 0x03, 0x00, 0xFF, 0x00, 0x13, 0x0C, 0x03, 0x40, 0x80, 0x7F, 0x00, 0x01, 0x06, 0x18, 0x00};
char code gao[] = {0x04, 0x04, 0x04, 0x04, 0xF4, 0x94, 0x95, 0x96, 0x94, 0x94, 0xF4, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0xFE, 0x02, 0x02, 0x7A, 0x4A, 0x4A, 0x4A, 0x4A, 0x4A, 0x7A, 0x02, 0x82, 0xFE, 0x00, 0x00};
//LCD 数字字码 一个数字16个字节
char code NUMBER[10][16] = {{0x00, 0xE0, 0x10, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x00, 0x0F, 0x10, 0x20, 0x20, 0x10, 0x0F, 0x00}, /*"0"*/{0x00, 0x10, 0x10, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x00, 0x00}, /*"1"*/{0x00, 0x70, 0x08, 0x08, 0x08, 0x88, 0x70, 0x00, 0x00, 0x30, 0x28, 0x24, 0x22, 0x21, 0x30, 0x00}, /*"2"*/{0x00, 0x30, 0x08, 0x88, 0x88, 0x48, 0x30, 0x00, 0x00, 0x18, 0x20, 0x20, 0x20, 0x11, 0x0E, 0x00}, /*"3"*/{0x00, 0x00, 0xC0, 0x20, 0x10, 0xF8, 0x00, 0x00, 0x00, 0x07, 0x04, 0x24, 0x24, 0x3F, 0x24, 0x00}, /*"4"*/{0x00, 0xF8, 0x08, 0x88, 0x88, 0x08, 0x08, 0x00, 0x00, 0x19, 0x21, 0x20, 0x20, 0x11, 0x0E, 0x00}, /*"5"*/{0x00, 0xE0, 0x10, 0x88, 0x88, 0x18, 0x00, 0x00, 0x00, 0x0F, 0x11, 0x20, 0x20, 0x11, 0x0E, 0x00}, /*"6"*/{0x00, 0x38, 0x08, 0x08, 0xC8, 0x38, 0x08, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00}, /*"7"*/{0x00, 0x70, 0x88, 0x08, 0x08, 0x88, 0x70, 0x00, 0x00, 0x1C, 0x22, 0x21, 0x21, 0x22, 0x1C, 0x00}, /*"8"*/{0x00, 0xE0, 0x10, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x00, 0x00, 0x31, 0x22, 0x22, 0x11, 0x0F, 0x00},/*"9"*/};
//英文字符,/*"/" 和 "s",":"*/
char code per[] = {0x00, 0x00, 0x00, 0x00, 0xC0, 0x38, 0x04, 0x00, 0x00, 0x60, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00};
char code s[] = {0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x33, 0x24, 0x24, 0x24, 0x24, 0x19, 0x00};
//colon是冒号的意思
char code colon[] = {0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00};
//函数声明
void delay_nops(int);
void turn_on_display();
void display_result();
void init_lcd();
void wait_until_not_busy();
void choose_screen(enum SCREEN_CHOICE screen);
void clear(enum SCREEN_CHOICE);
void set_page(char);
void set_col(char);//LCD初始化函数
void init_lcd()
{wait_until_not_busy();RST = 0; //复位delay_nops(200);RST = 1;delay_nops(200);turn_on_display();clear(WHOLE); //清屏 这个必须有!因为复位后显示RAM不会自动清0
}//读取LCD状态字
void get_lcd_sw()
{RS = 0;RW = 1;E = 1;
}
//等待直到LCD非忙
void wait_until_not_busy()
{get_lcd_sw();while (BUSY){}// E = 0;
}
//写控制lcd代码
void set_lcd(char control_code)
{wait_until_not_busy();RS = 0;RW = 0;LCD_DATA = control_code;//下跳沿写入E = 1;delay_nops(200);E = 0;
}
//写LCD数据
void lcd_data_write(char lcd_data)
{wait_until_not_busy();RS = 1;RW = 0;LCD_DATA = lcd_data;//下跳沿写入E = 1;delay_nops(200);E = 0;
}
//设置显示行
void set_row(char row)
{row = row & 0x3f; //Row范围0到63,高两位清零set_lcd(0xc0 + row);
}
//设置显示列
void set_col(char col)
{col = col & 0x3f; //Col范围0到63,高两位清零set_lcd(0x40 + col);
}
//设置显示页
void set_page(char page)
{page = page & 0x07; //Page范围0到7,取低三位set_lcd(0xb8 + page);
}
//开显示
void turn_on_display()
{set_lcd(0x3f);
}
//选择屏
void choose_screen(enum SCREEN_CHOICE screen)
{switch (screen){case LEFT:CS1 = 1;CS2 = 0;break; //左屏case RIGHT:CS1 = 0;CS2 = 1;break; //右屏case WHOLE:CS1 = 1;CS2 = 1;break; //全屏default:CS1 = 1;CS2 = 1;break; //全屏}
}
//清屏
void clear(enum SCREEN_CHOICE screen)
{int i, j;choose_screen(screen);for (i = 0; i < 8; i++){set_page(i);set_col(0x00);/*注意这里的j是从0到63因为如果我们选择全屏的话,它也不是把整块屏幕算做一个屏,而是同时对左右两个半屏做相同的操作。所以最多能操作的列数还是64列。*/for (j = 0; j < 64; j++){lcd_data_write(0x00);}}
}//显示汉字
void display_Chinese(enum SCREEN_CHOICE screen, char page, char col, char *Chinese)
{//汉字是16*16,即16行,16列。一页有8行,所以需要两页int i = 0;choose_screen(screen);set_page(page);set_col(col);//汉字的上半部分for (i = 0; i < 16; i++){lcd_data_write(Chinese[i]);}//汉字的下半部分set_page(page + 1);set_col(col);for (i = 16; i < 32; i++){lcd_data_write(Chinese[i]);}
}
//显示英文字符
void display_number(enum SCREEN_CHOICE screen, char page, char col, char *English)
{//数字是16*8,即16行,8列。一页有8行,所以需要两页int i = 0;choose_screen(screen);set_page(page);set_col(col);//数字的上半部分for (i = 0; i < 8; i++){lcd_data_write(English[i]);}//数字的下半部分set_page(page + 1);set_col(col);for (i = 8; i < 16; i++){lcd_data_write(English[i]);}
}
//这个函数用来清 低/高目标转速那行字
void clear_lower_part()
{int i, j;for (i = DISPALY_PAGE + 3; i <= DISPALY_PAGE + 4; i++){choose_screen(WHOLE);set_page(i);set_col(0x00);for (j = 0; j < 64; j++){lcd_data_write(0x00);}}
}
//显示当前转速
void display_result_cur()
{int cur_ones, cur_tens, cur_hundreds;cur_hundreds = cur_speed / 100; //百位cur_tens = cur_speed % 100 / 10; //十位cur_ones = cur_speed % 10; //个位display_Chinese(LEFT, DISPALY_PAGE, 0, dang);display_Chinese(LEFT, DISPALY_PAGE, 1 * 16, qian);display_Chinese(LEFT, DISPALY_PAGE, 2 * 16, zhuan);display_Chinese(LEFT, DISPALY_PAGE, 3 * 16, su);display_number(RIGHT, DISPALY_PAGE, 0, colon);display_number(RIGHT, DISPALY_PAGE, 1 * 8, NUMBER[cur_hundreds]);display_number(RIGHT, DISPALY_PAGE, 2 * 8, NUMBER[cur_tens]);display_number(RIGHT, DISPALY_PAGE, 3 * 8, NUMBER[cur_ones]);display_number(RIGHT, DISPALY_PAGE, 4 * 8, per);display_number(RIGHT, DISPALY_PAGE, 5 * 8, s);
}//显示低目标转速
void display_result_low()
{int low_ones, low_tens, low_hundreds;display_result_cur();low_hundreds = low_target / 100;low_tens = low_target % 100 / 10;low_ones = low_target % 10;display_Chinese(LEFT, DISPALY_PAGE + 3, 0, di);display_Chinese(LEFT, DISPALY_PAGE + 3, 1 * 16, mu);display_Chinese(LEFT, DISPALY_PAGE + 3, 2 * 16, biao);display_Chinese(LEFT, DISPALY_PAGE + 3, 3 * 16, zhuan);display_Chinese(RIGHT, DISPALY_PAGE + 3, 0, su);display_number(RIGHT, DISPALY_PAGE + 3, 16, colon);display_number(RIGHT, DISPALY_PAGE + 3, 3 * 8, NUMBER[low_hundreds]);display_number(RIGHT, DISPALY_PAGE + 3, 4 * 8, NUMBER[low_tens]);display_number(RIGHT, DISPALY_PAGE + 3, 5 * 8, NUMBER[low_ones]);display_number(RIGHT, DISPALY_PAGE + 3, 6 * 8, per);display_number(RIGHT, DISPALY_PAGE + 3, 7 * 8, s);
}
//显示高目标转速
void display_result_high()
{int high_ones, high_tens, high_hundreds;high_hundreds = high_target / 100;high_tens = high_target % 100 / 10;high_ones = high_target % 10;display_result_cur();//高目标转速display_Chinese(LEFT, DISPALY_PAGE + 3, 0, gao);display_Chinese(LEFT, DISPALY_PAGE + 3, 1 * 16, mu);display_Chinese(LEFT, DISPALY_PAGE + 3, 2 * 16, biao);display_Chinese(LEFT, DISPALY_PAGE + 3, 3 * 16, zhuan);display_Chinese(RIGHT, DISPALY_PAGE + 3, 0, su);display_number(RIGHT, DISPALY_PAGE + 3, 16, colon);display_number(RIGHT, DISPALY_PAGE + 3, 3 * 8, NUMBER[high_hundreds]);display_number(RIGHT, DISPALY_PAGE + 3, 4 * 8, NUMBER[high_tens]);display_number(RIGHT, DISPALY_PAGE + 3, 5 * 8, NUMBER[high_ones]);display_number(RIGHT, DISPALY_PAGE + 3, 6 * 8, per);display_number(RIGHT, DISPALY_PAGE + 3, 7 * 8, s);
}
/* 对于延时很短的,要求在us级的,采用"_nop_"函数,这个函数相当汇编NOP指令,延时几微秒。NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M晶振,12/12M=1uS。*/
void delay_nops(int n)
{while (n--){_nop_();}
}sbit PWM_OUT = P1 ^ 1;
//开关
sbit S1 = P3 ^ 6;
sbit S2 = P3 ^ 7;void int0_service() interrupt 0
{speed++;/*在本实验板中,电机每转动一次,与之相连的偏心轮将遮挡光电对管一次,因此会产生一个脉冲,送到INT0。要测量转速可以测量一秒种之内发生的中断次数。*/
}
//multiple:倍数。24个1/24s的定时器为1s
int multiple = 24;void T0_service() interrupt 1
{int error;//TH0,TL0都是内部自带的寄存器,所以我们无需自己定义寄存器啥的,直接用就行TH0 = 0x5D;TL0 = 0x3E;/*因为执行到这时已经过去了一个定时时间,所以是--multiple不是multiple--即先减multiple后用multiple*/while (--multiple == 0){cur_speed = speed;multiple = 24;if (S1 == 0) //s1按下 低目标转速{CUR_N = LOW_N;/*与low_target+1比较而不是与low_target比较是因为本程序未对速度进行取平均处理,所以最后稳定时速度有+-1的浮动*/if (cur_speed > (low_target + 1)){error = 0.1 * (cur_speed - low_target); //用这个来修正N/*如果error算出来特别小,那强制类型转换后error就是0了所以为了在这种情况下依旧可以调整N,我们可以令error为1*/if (error < 1)error = 1;LOW_N -= error;}else if (cur_speed < (low_target - 1)){error = 0.1 * (low_target - cur_speed);if (error < 1)error = 1;LOW_N += error;}}else if (S2 == 0) //s2按下 高目标转速{CUR_N = HIGH_N;if (speed > high_target + 1){/*注意这里的系数是0.15而低目标时的系数是0.1系数是自己设的,不是用确定的公式计算得到的。之所以这里写0.15是因为如果是0.1那么当speed与high_target相差小于10的时候error就会被置为1,那就会导致speed就会每次变化1。也就是说大约10s后才能到目标值。当系数为0.2时,这个过程需要5s,但是系数越大,稳定前每次调整的幅度就越大,因为这个调整有一定的滞后性,所以如果调整的幅度比较大,就更不容易稳定。所以这里折中考虑选择了0.15;而慢速时,对调整幅度更加敏感,所以低目标那写的是0.1*/error = 0.15 * (speed - high_target);if (error < 1)error = 1;HIGH_N -= error;}else if (speed < high_target - 1){error = 0.15 * (high_target - speed);if (error < 1)error = 1;HIGH_N += error;}}speed = 0;}
}void T1_service() interrupt 3
{TH1 = 0XFF; //0.1msTL1 = 0x9C;x += CUR_N;if (x >= M) //注意这里是大于等于M,不是大于M{PWM_OUT = 0; //输出0使电机工作x -= M;}else{PWM_OUT = 1;}
}void init()
{TMOD = 0x11; //T0,T1作为定时器并工作在方式一TH0 = 0x5D; //1/24sTL0 = 0x3E;TH1 = 0XFF; //0.1msTL1 = 0x9C;ET0 = 1; //允许定时器0 中断ET1 = 1; //允许定时器1 中断IT0 = 1; //设置INT0为下降沿触发EX0 = 1; //允许INT0 中断EA = 1; //允许CPU响应中断TR0 = 1; //定时器0开始运行TR1 = 1; //定时器0开始运行
}
void main()
{init_lcd();init();while (1){if (S1 == 0) //s1按下 低目标转速{display_result_low();}else if (S2 == 0) //s2按下 高目标转速{display_result_high();}else{display_result_cur();clear_lower_part(); //这里记得清一下 下面那行字,以表示此时没有键按下}}
}
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- Linux安装Redis(ubuntu/centos)
Linux安装Redis(ubuntu/centos)卸载旧版本的Redis压缩包安装Redis(推荐)在线安装Rediscentos安装ubuntu安装(参考)Redis启动、权限、端口设置卸载旧版本的Redis #查看已安装redis版本 redis-server --version#查看在运行redis进程 ps aux | grep redis …...
2024/4/22 15:13:10 - 程序员跳槽攻略,如何高效准备面试?
以下文章来源于公众号“程序员求职之路” 金九银十跳槽季,程序员会通过不断提升自己的岗位从而提升能力和薪资待遇。所以在IT领域,人才的流动相对要频繁一些。对于程序员来说,跳槽后要想高效的准备面试,应该注重以下几个方面的内…...
2024/4/27 1:14:32 - MSDS有没有指定哪家机构认可?
MSDS有没有指定哪家机构认可? MSDS (Material Safety Data Sheet)即化学bai品安全说明书,亦可译为化学品安全技术说明书或化du学品安全数据说明书。 MSDS是化学品生产zhi或销售企业按法律要求向客户提供的有关化学品特征的一份综合性法律文件。它提供化…...
2024/4/22 9:43:12 - docker容器管理命令
docker容器管理命令 1、docker ps 查看容器的进程 docker ps docker container 其实没什么大的区别,你可以把它看作一个。 docker ps 查看运行的容器 docker container ls 查看运行的容器[rootlinuxftp243 ~]# docker container ls -a CONTAINER ID IM…...
2024/5/2 12:54:27 - 果粉必看:苹果手表apple watch series 6有哪些新提升
苹果新品发布已经过了一段时间,相信关注苹果产品的小伙伴也都了解很多了,今天小编为错过发布会的朋友带来关于苹果手表的相关信息,看看Apple Watch Series 6在健康方面都有哪些提升吧! 健康功能 Apple Watch Series 6提供与Seri…...
2024/4/19 0:37:21 - 2020.9.25字节跳动后端实习一面面经
文章目录前言一、自我介绍二、挖项目1、看到你用过unity3D,C#写的代码上线后怎么做到扩展(热部署)?2、仿饿了么项目怎样部署上线的?3、这个项目在做的时候考虑到流量控制和服务降级了吗?4、你知道漏桶和令牌…...
2024/4/25 15:46:12 - Jmeter环境搭建及基本HTTP请求
阿里云超低折扣活动再度来袭: 新用户购买 > 老用户续费> 一、环境搭建及配置 运行环境:Jmeter是基于Java语言的,所以需要准备Java的环境,并添加环境变量。 下载Jmeter:可在Jmeter官网直接下载,如下…...
2024/4/18 18:23:07 - Canvas与web数据可视化
什么是Canvas Canvas是HTML5新增的一个元素,该元素用于2d图像的绘制,Canvas元素本身并没有绘图的能力,它需要结合javascript使用官方提供的API进行绘制图形。 Canvas用在哪些地方 实时的走势图统计图表验证在线画图板HTML5游戏 什么是数据…...
2024/4/7 14:49:08 - 问题处理:VMware Workstation和Device / Credential Guard不兼容
这里写自定义目录标题VMware Workstation和Device / Credential Guard不兼容禁用Device / Credential Guard关闭Hpver-VVMware Workstation和Device / Credential Guard不兼容 VM安装好之后提示上述信息 禁用Device / Credential Guard win R 在运行界面输入:gpe…...
2024/4/27 19:05:24 - 区块链技术的四大核心技术
1.点对点分布式技术(P2P):点对点技术(peer-to-peer,简称P2P)也称为对等互联网技术,依赖于网络参加者的计算能力和带宽,不是将依赖集中在少数服务器上。P2P技术优势明显。点对点网络的分布特性,通过多节点复制数据,也增…...
2024/4/26 8:40:39 - 使用k-近邻算法的手写识别系统(学习记录)
以下内容来源于《Machine Learning in Action》 使用k-近邻算法的手写识别系统 (1) 收集数据:提供文本文件。 (2) 准备数据:编写函数classify0(),将图像格式转换为分类器使用的list格式。 (3) 分析数据:在Python命令提示符中检查…...
2024/5/2 13:22:24 - 腾讯T4架构师熬夜梳理的2020版Java指南
1.计算机基础: 1.1数据结构基础: 主要学习: 1.向量,链表,栈,队列和堆,词典。熟悉 2.树,二叉搜索树。熟悉 3.图,有向图,无向图,基本概念 4.二叉搜…...
2024/4/24 2:23:02 - 2020形势与政策全部答案哪里有?
本文转载于:弓—粽---浩【海燕题库】【芦柑题库】 一条路不能回头,就是一生要走许多路,有成长之路。很多事情不能自己掌控,即使再孤单再寂寞,仍要继续走下去,不许停也不能回头 问:病原微生物 …...
2024/4/26 23:31:11 - 橡胶垫片的作用有哪些?
橡胶垫片具有耐油、耐酸碱、耐寒热、耐老化等性能,可直接切割成各种形状的密封垫片,广泛应用于医药、电子、化工、抗静电、阻燃、食品等行业。 接下来由中北小编为大家详细介绍橡胶垫片的作用: 橡胶垫圈在金属法兰或其它连接部位两个静止表面…...
2024/4/7 14:49:03 - 高中物理基础
面积是矢量面积 * 压强 浮力IQ/t质点模型时间点,时间段位置是矢量,相对于原点位移和路程概念,∑累加运动学:kinematics,存在位移就是发生运动。速度:velocity,速率speeed速度delta位移/delta时间ÿ…...
2024/4/23 14:19:12 - 铅酸蓄电池的振动、压差、55℃渗漏测试介绍
铅酸蓄电池的振动、压差、55℃渗漏测试介绍 铅酸电池振动、压差、55℃漏液测试 锂电池国标检测/gb31241检测 项目背景: 锂离子电池性能优越,在便携式电子产品领域应用广泛,便携式移动电源是指不超过18kg的预定可由使用人员经常携带的电源。…...
2024/4/12 20:26:18 - Vue集成QQ登录[server-side模式][Oauth2 code模式]
Vue集成QQ登录申请开通QQ互联登录模式引入资源添加按钮和函数回调页面后台接口总结:代码地址:申请开通QQ互联登录 文档地址: 【QQ登录】OAuth2.0开发文档.申请应用 地址 注意事项: 在网站首页加入QQ登录的按钮(下面会说具体怎么加)网站信息和备案信息一致 模式 本文使用的是…...
2024/4/18 1:07:22 - 欧盟CLP法规分类/标签/SDS是什么
欧盟CLP法规分类/标签/SDS是什么 SDS(SafetyDataSheet,安全数据表)是危险化学品生产或销售企业按法规要求向客户提供的一份关于化学品组分信息、理化参数、燃爆性能,毒性、环境危害,以及安全使用方式、存储条件、泄漏…...
2024/4/18 10:27:40 - FFmpeg旧视频编码和新视频流程
旧视频编码调用流程 (1)API注册 仅仅使用libavcodec部分的接口,所以在注册使用FFmpeg接口时,可以使用avcodec_register_all进行注册 avcodec_register_all();(2)查找编码器 注册操作完成之后,首先需要查找自己使用的编码器,可以通…...
2024/4/23 0:41:11 - Visual Studio更新软件图标后,图标没有立即更新的原因
花了四个小时就为了解决一个图标的更新问题,说实话问题是解决了,但是却没有成就感,但是。。。作为中华儿女,我得具有奉献精神,我不入地狱谁入地狱,我入了地狱但是不能让我大中华其他儿女也入地狱࿰…...
2024/4/22 0:58:57
最新文章
- Spring Boot使用Logback将某些日志输出到单独的文件
缘起 重构了某个接口,想监控下新接口各个处理过程的时间,从而评估和监控日常性能。监控使用Spring自带的StopWatch,日志使用Logback 配置 先拷贝一份infoAppender配置过来改个名 <!-- 监控日志 --><appender name"monitorAp…...
2024/5/4 1:10:04 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - [C++][算法基础]模拟队列(数组)
实现一个队列,队列初始为空,支持四种操作: push x – 向队尾插入一个数 x;pop – 从队头弹出一个数;empty – 判断队列是否为空;query – 查询队头元素。 现在要对队列进行 M 个操作,其中的每…...
2024/5/1 13:02:53 - PHP+python高校教务处工作管理系统q535p
开发语言:php 后端框架:Thinkphp/Laravel 前端框架:vue.js 服务器:apache 数据库:mysql 运行环境:phpstudy/wamp/xammp等 系统根据现有的管理模块进行开发和扩展,采用面向对象的开发的思想和结构化的开发方…...
2024/5/1 13:22:30 - 416. 分割等和子集问题(动态规划)
题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义:dp[i][j]表示当背包容量为j,用前i个物品是否正好可以将背包填满ÿ…...
2024/5/3 11:50:27 - 【Java】ExcelWriter自适应宽度工具类(支持中文)
工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...
2024/5/2 16:04:58 - Spring cloud负载均衡@LoadBalanced LoadBalancerClient
LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon,直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件,我们讨论Spring负载均衡以Spring Cloud2020之后版本为主,学习Spring Cloud LoadBalance,暂不讨论Ribbon…...
2024/5/2 23:55:17 - TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案
一、背景需求分析 在工业产业园、化工园或生产制造园区中,周界防范意义重大,对园区的安全起到重要的作用。常规的安防方式是采用人员巡查,人力投入成本大而且效率低。周界一旦被破坏或入侵,会影响园区人员和资产安全,…...
2024/5/3 16:00:51 - VB.net WebBrowser网页元素抓取分析方法
在用WebBrowser编程实现网页操作自动化时,常要分析网页Html,例如网页在加载数据时,常会显示“系统处理中,请稍候..”,我们需要在数据加载完成后才能继续下一步操作,如何抓取这个信息的网页html元素变化&…...
2024/5/3 11:10:49 - 【Objective-C】Objective-C汇总
方法定义 参考:https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...
2024/5/3 21:22:01 - 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】
👨💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】🌏题目描述🌏输入格…...
2024/5/3 23:17:01 - 【ES6.0】- 扩展运算符(...)
【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数࿰…...
2024/5/2 23:47:43 - 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?
文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕,各大品牌纷纷晒出优异的成绩单,摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称,在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁,多个平台数据都表现出极度异常…...
2024/5/3 13:26:06 - Go语言常用命令详解(二)
文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令,这些命令可以帮助您在Go开发中进行编译、测试、运行和…...
2024/5/3 1:55:15 - 用欧拉路径判断图同构推出reverse合法性:1116T4
http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b,我们在 a i a_i ai 和 a i 1 a_{i1} ai1 之间连边, b b b 同理,则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然࿰…...
2024/5/2 9:47:28 - 【NGINX--1】基础知识
1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息,并安装一些有助于配置官方 NGINX 软件包仓库的软件包: apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...
2024/5/3 16:23:03 - Hive默认分割符、存储格式与数据压缩
目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限(ROW FORMAT)配置标准HQL为: ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...
2024/5/3 1:55:09 - 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法
文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中,传感器和控制器产生大量周…...
2024/5/2 8:37:00 - --max-old-space-size=8192报错
vue项目运行时,如果经常运行慢,崩溃停止服务,报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中,通过JavaScript使用内存时只能使用部分内存(64位系统&…...
2024/5/3 14:57:24 - 基于深度学习的恶意软件检测
恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞,例如可以被劫持的合法软件(例如浏览器或 Web 应用程序插件)中的错误。 恶意软件渗透可能会造成灾难性的后果,包括数据被盗、勒索或网…...
2024/5/2 9:47:25 - JS原型对象prototype
让我简单的为大家介绍一下原型对象prototype吧! 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定,每一个构造函数都有一个 prototype 属性,指向另一个对象,所以我们也称为原型对象…...
2024/5/2 23:47:16 - C++中只能有一个实例的单例类
C中只能有一个实例的单例类 前面讨论的 President 类很不错,但存在一个缺陷:无法禁止通过实例化多个对象来创建多名总统: President One, Two, Three; 由于复制构造函数是私有的,其中每个对象都是不可复制的,但您的目…...
2024/5/3 22:03:11 - python django 小程序图书借阅源码
开发工具: PyCharm,mysql5.7,微信开发者工具 技术说明: python django html 小程序 功能介绍: 用户端: 登录注册(含授权登录) 首页显示搜索图书,轮播图࿰…...
2024/5/3 7:43:42 - 电子学会C/C++编程等级考试2022年03月(一级)真题解析
C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...
2024/5/3 1:54:59 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下: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