基于语音控制的智能衣柜系统之应用层——单片机的功能实现
如果你的系统是通过单片机去控制小风扇,也可以参考此文章。
如果一点单片机基础都没有的,麻烦请先去入门一下单片机基础知识。
本系统的单片机在该系统中起着最重要的作用, 是数据管理和处理的核心。其主要实现的功能有:
1.除湿、通风;
2.与APP通过串口通信以及配置WiFi;
3.与CC2530串口通信;
4.智能照明;
5.与语音模块通过串口通信以及语音模块的设置。
1.智能除湿、智能通风
单片机(我的单片机型号是stm32f103系列)通过串口二接收来自协调器节点(CC2530,这个在目录3会说明)的温湿度、气体浓度数据,并根据适宜衣柜储存的温湿度、气体浓度来判断是否执行抽湿机、通风机。串口二对应的接口是PA2(TXD)、PA3(RXD),单片机串口二接收协调器节点数据处理函数关键代码(usart.c)如下:
提示一下,以下代码主要实现的是:判断是否接收到来自串口二发送过来的数据,如果接收到了,就根据温湿度和气体浓度的理想值判断是否开关抽湿模块、通风模块。
#include "sys.h"
#include "usart2.h"
#include "usart3.h"
#include "delay.h"
#include "stdarg.h"
#include "stdio.h"
#include "string.h"
#include "timer.h"
#include "common.h"
#include "lcd.h"
#include "GUI.h"#if EN_USART2_RX //如果使能了接收
//串口1中断服务程序
//注意,读取USARTx->SR能避免莫名其妙的错误
u8 USART2_RX_BUF[USART2_REC_LEN]; //接收缓冲,最大USART_REC_LEN个字节.
//接收状态
//bit15, 接收完成标志
//bit14, 接收到0x0d
//bit13~0, 接收到的有效字节数目
u16 USART2_RX_STA=0; //接收状态标记
u8 pi2;
void uart2_recdeal(void)
{static u16 len,t; if(USART2_RX_STA&0x8000){ len=USART2_RX_STA&0x3fff;//得到此次接收到的数据长度//printf("\r\n老米:\r\n\r\n");if( USART2_RX_BUF[0]=='1') //温湿度,1T&H:{printf("%s\r\n",USART2_RX_BUF); //发送到串口 if( USART2_RX_BUF[8]>'6'){LED0=0;}else if(USART2_RX_BUF[8]<'3'){LED0=1;}// printf("%c\r\n",USART2_RX_BUF[5]); //发送到串口
// sprintf((char*)pi,"Rec %d byte ",rlen);//接收到的字节数
// Show_Str(0,102,BLUE,WHITE,pi,12,0); //显示接收到的数据长度
// Show_Str(0,102,BLUE,WHITE,USART3_RX_BUF,12,0); //显示接收到的数据长度 }else if(USART2_RX_BUF[0]=='2') //气体浓度 2MQ2:{//printf("%s\r\n",USART2_RX_BUF); //发送到串口 //printf("%c\r\n",USART2_RX_BUF[5]); //发送到串口 //printf("%c\r\n",USART2_RX_BUF[6]); //发送到串口 static int k;for(k=0;k<8;k++){printf("%c",USART2_RX_BUF[k]);}if( USART2_RX_BUF[5]>='2'){LED1=0;}else if(USART2_RX_BUF[5]<'1'){LED1=1;}printf("\r\n");//插入换行}for(t=0;t<len;t++){// USART_SendData(USART2, USART2_RX_BUF[t]);//向串口2发送数据while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);//等待发送结束}//printf("\r\n\r\n");//插入换行USART2_RX_STA=0;//delay_ms(10);}} void uart2_init(u32 bound){//GPIO端口设置GPIO_InitTypeDef GPIO_InitStructure;USART_InitTypeDef USART_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能USART1,GPIOA时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); //使能USART1,GPIOA时钟//USART1_TX GPIOA.2GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //PA.2GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIOA.2//USART1_RX GPIOA.3初始化GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;//PA3GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIOA.3//Usart1 NVIC 配置NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//抢占优先级3NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //子优先级3NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器//USART 初始化设置USART_InitStructure.USART_BaudRate = bound;//串口波特率USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为8位数据格式USART_InitStructure.USART_StopBits = USART_StopBits_1;//一个停止位USART_InitStructure.USART_Parity = USART_Parity_No;//无奇偶校验位USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//无硬件数据流控制USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收发模式USART_Init(USART2, &USART_InitStructure); //初始化串口1USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);//开启串口接受中断USART_Cmd(USART2, ENABLE); //使能串口1 }void USART2_IRQHandler(void) //串口1中断服务程序{u8 Res;if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //接收中断(接收到的数据必须是0x0d 0x0a结尾){Res =USART_ReceiveData(USART2); //读取接收到的数据if((USART2_RX_STA&0x8000)==0)//接收未完成{if(USART2_RX_STA&0x4000)//接收到了0x0d{if(Res!=0x0a)USART2_RX_STA=0;//接收错误,重新开始else USART2_RX_STA|=0x8000; //接收完成了 }else //还没收到0X0D{ if(Res==0x0d)USART2_RX_STA|=0x4000;else{USART2_RX_BUF[USART2_RX_STA&0X3FFF]=Res ;USART2_RX_STA++;if(USART2_RX_STA>(USART2_REC_LEN-1))USART2_RX_STA=0;//接收数据错误,重新开始接收 } }} } }
#endif
usart.h代码如下:
#ifndef __USART2_H
#define __USART2_H
#include "stdio.h"
#include "sys.h" #define USART2_REC_LEN 200 //定义最大接收字节数 200
#define EN_USART2_RX 1 //使能(1)/禁止(0)串口1接收extern u8 USART2_RX_BUF[USART2_REC_LEN]; //接收缓冲,最大USART_REC_LEN个字节.末字节为换行符
extern u16 USART2_RX_STA; //接收状态标记
//如果想串口中断接收,请不要注释以下宏定义
void uart2_init(u32 bound);
void uart2_recdeal(void);
#endif
有不懂的可以问。
2.与APP通过串口通信以及配置WiFi
该系统的单片机通过串口三配置Wi-Fi模块,实现与手机APP通信。
ESP8266WiFi模块一共有三种工作模式,分别是AP模式、STA模式、STA+AP模式,该系统选用的是STA模式,如果使用该模式,单片机就能够连接路由器,同时会得到一个IP地址,只要我们用手机去连接这个IP地址,就可以实现手机和单片机通信。此时ESP8266模块是终端,可连接室内路由器、手机的热点或者AP热点:
①模块连接AP热点,可与其进行双向数据通信。
②模块连接手机的热点,可与网络调试助手通信。
③模块连接路由器,可以在同一路由器的局域网络下的手机或电脑网络调试助手软件进行通信。
④模块可以通过路由器接入互联网,实现手机通过外网去控制智能衣柜。
因此,手机APP就可以通过广域网实现与单片机通信。
由于该系统把单片机作为TCP服务器,所以我在此介绍一下串口无线STA模式下的TCP服务器的配置。
了解上述配置原理之后,即可编写单片机代码,在此,我引用了Wi-Fi的标准例子来修改,Wi-Fi模块连接单片机的串口三(怎么接线在我的另一篇文章有,详情请点击链接),即PB11(RXD)、PB10(TXD),以下是单片机配置和处理接收来自手机APP数据的代码(wifista.c):
#include "common.h"
#include "stdlib.h"
#include "lcd.h"
#include "GUI.h"
#include "usart2.h"
#include "timer3.h"
//ATK-ESP8266 WIFI STA测试
//用于测试TCP/UDP连接
//返回值:0,正常
// 其他,错误代码char *Data1="@PlayFlashText#001$";//这是语音播报的命令
char *Data2="@PlayFlashText#002$";
char *Data3="@PlayFlashText#003$";
char *Data4="@PlayFlashText#004$";
u8 atk_8266_wifista_test(void)
{u8 ipbuf[16]; //IP缓存 u8 res=0;u8 *p;p=mymalloc(SRAMIN,32); //申请32字节内存atk_8266_send_cmd("AT+CWMODE=1","OK",50); //设置WIFI STA模式atk_8266_send_cmd("AT+RST","OK",20); //DHCP服务器关闭(仅AP模式有效) delay_ms(1000); //延时3S等待重启成功delay_ms(1000);delay_ms(1000);delay_ms(1000);//设置连接到的WIFI网络名称/加密方式/密码,这几个参数需要根据您自己的路由器设置进行修改!! sprintf((char*)p,"AT+CWJAP=\"%s\",\"%s\"",wifista_ssid,wifista_password);//设置无线参数:ssid,密码while(atk_8266_send_cmd(p,"WIFI GOT IP",300)); //连接目标路由器,并且获得IPdelay_ms(1000);delay_ms(1000);//TCP Server{LCD_Clear(WHITE);POINT_COLOR=RED;Show_Str(0,0,RED,WHITE,"Config ATK-ESP success!",12,0);atk_8266_send_cmd("AT+CIPMUX=1","OK",20); //0:单连接,1:多连接sprintf((char*)p,"AT+CIPSERVER=1,%s",(u8*)portnum);atk_8266_send_cmd(p,"OK",20); //开启Server模式,端口号为8086 }LCD_Clear(WHITE);delay_ms(200);atk_8266_get_wanip(ipbuf);//服务器模式,获取WAN IPprintf("ip:%s\r\n",ipbuf);sprintf((char*)p,"IP:%s",ipbuf);Show_Str(0,0,RED,WHITE,p,12,0); //显示IP地址sprintf((char*)p,"port:%s",(u8*)portnum);Show_Str(0,13,RED,WHITE,p,12,0); //显示端口Show_Str(0,26,RED,WHITE,"static:",12,0); //连接状态 Show_Str(0,65,RED,WHITE,"send data:",12,0); //发送数据Show_Str(0,90,RED,WHITE,"receive data:",12,0); //发送数据atk_8266_wificonf_show(0,64," ",(u8*)wifista_ssid,(u8*)wifista_encryption,(u8*)wifista_password);USART3_RX_STA=0;myfree(SRAMIN,p); //释放内存 return res;
} u8 key;
u16 t=999; //加速第一次获取链接状态
u8 *pi;
u16 rlen=0;
u8 constate=0; //连接状态void atk_8266_wifista_server_test(void)
{ extern int b;u8 i=0;pi=mymalloc(SRAMIN,100);//申请100字节内存key=KEY_Scan(0);if(key==WKUP_PRES) //WK_UP { //LED0=1; }else if(send_sta ==1) //定时发送数据 { //TCP Server send_sta = 0;// sprintf((char*)pi,"ATK-8266 TCP Server ");//测试数据sprintf((char*)pi,"%s",USART2_RX_BUF);Show_Str(3,78,BLUE,WHITE,pi,20,0); atk_8266_send_cmd("AT+CIPSEND=0,20","OK",200); //发送指定长度的数据delay_ms(1000);atk_8266_send_data(pi,"OK",100); //发送指定长度的数据 USART3_RX_STA=0;}t++;delay_ms(10);if(USART3_RX_STA&0X8000) //接收到一次数据了{
// printf("%s",USART3_RX_BUF); //发送到串口 if( USART3_RX_BUF[3]=='I') //USART3_RX_BUF[2]=='+'&&{if( USART3_RX_BUF[11]=='t'){if( USART3_RX_BUF[12]=='1'){LED0=0;
// sprintf((char*)pi,"%s",Data);for(i=0;i<strlen((const char*)Data1);i++){while(USART_GetFlagStatus(UART4,USART_FLAG_TC)==RESET); //循环发送,直到发送完毕 USART_SendData(UART4, Data1[i]);}//@Retransmit#*PlayFlashText^001&$}else if(USART3_RX_BUF[12]=='0'){LED0=1;for(i=0;i<strlen((const char*)Data2);i++){while(USART_GetFlagStatus(UART4,USART_FLAG_TC)==RESET); //循环发送,直到发送完毕 USART_SendData(UART4, Data2[i]);}} }else if(USART3_RX_BUF[11]=='c'){if( USART3_RX_BUF[12]=='1'){LED1=0;for(i=0;i<strlen((const char*)Data3);i++){while(USART_GetFlagStatus(UART4,USART_FLAG_TC)==RESET); //循环发送,直到发送完毕 USART_SendData(UART4, Data3[i]);}}else if(USART3_RX_BUF[12]=='0'){LED1=1;for(i=0;i<strlen((const char*)Data4);i++){while(USART_GetFlagStatus(UART4,USART_FLAG_TC)==RESET); //循环发送,直到发送完毕 USART_SendData(UART4, Data4[i]);}} }rlen=USART3_RX_STA&0X7FFF; //得到本次接收到的数据长度USART3_RX_BUF[rlen]=0; //添加结束符 printf("%s",USART3_RX_BUF); //发送到串口 sprintf((char*)pi,"Rec %d byte ",rlen);//接收到的字节数 Show_Str(0,102,BLUE,WHITE,pi,12,0); //显示接收到的数据长度 Show_Str(0,102,BLUE,WHITE,USART3_RX_BUF,12,0); //显示接收到的数据长度 }USART3_RX_STA=0;if(constate!='+')t=1000; //状态为还未连接,立即更新连接状态else t=0; //状态为已经连接了,10秒后再检查} if(t==1000)//连续10秒钟没有收到任何数据,检查连接是不是还存在.{constate=atk_8266_consta_check();//得到连接状态if(constate=='+')Show_Str(45,26,BLUE,WHITE,"success ",12,0); //连接状态else Show_Str(45,26,BLUE,WHITE,"fail ",12,0); USART3_RX_STA=0; t=0;}
// if((t%30)==0)LED0=!LED0;myfree(SRAMIN,pi); //释放内存}
不知道代码想要实现什么的,我可以提示一下,以上给出的代码,首先是判断是否接收到来自串口二(也就是感知层发送过来的数据),如果接收到了,就定时发送给wifi模块,也就是发给串口三,然后WiFi模块接收到之后,会转发给APP。不用管WiFi模块是怎么发给APP的,只需要知道的是,WiFi模块内置了tcp/ip协议,只要APP是用tcp/ip协议实现网络通信,就可以了。
3.智能照明
我为什么要把智能照明也要放到单片机功能实现呢?因为智能照明的供电来源就是单片机呀!图里没有说明连接哪里的GND其实就是要连接单片机的GND引脚。
4.与语音模块通过串口通信以及语音模块的设置
单片机通过串口四实现语音控制和语音播报反馈。
首先介绍一下WEGASUN-M6语音识别模块,要想实现语音控制智能衣柜,得先设置好识别词条和反馈词条。
将USB设置器(USB转TTL)与语音识别模块连接,然后将USB设置器与电脑连接起来,注意TXD是连接RXD。
连接好硬件之后,就可以对语音模块进行配置了。
首先安装串口驱动,这个我会放到资料包里的。
然后通过WEGASUN-M6提供的语音识别软件(我也放资料包了),设置识别和反馈词条。我设置的识别词条是:
@WriteKeywords#打开抽湿机 001|关闭抽湿机 002|通风 003|关闭通风机 004|$
我设置的反馈词条是:@WriteFlashText#|001马上给您打开抽湿机|002马上给您关闭抽湿机|003马上给您通风|004马上给您关闭通风机$
所以只要说其中的一句识别词条,就会有相对应的语音播报反馈,并返回一个数字给串口。
温馨提示:词条不要乱加什么空格,直接复制我的就行了,它格式是固定的。
对于具体怎么设置词条,它有个说明书的,我放资料包里了。
至此语音模块配置完了,由于语音模块在识别后做出反馈的时候会返回数字给串口,识别的是001的词条,则返回的是01数字,识别的是002的词条,则返回的数字是02 …以此类推。
该系统的语音功能通过单片机串口四实现,串口四的接口分别是:PC10(TXD)、PC11(RXD),以下是单片机主要实现代码(uart4.c):
#include "sys.h"
#include "uart4.h"
#include "led.h"
#include "delay.h"//串口1中断服务程序
//注意,读取USARTx->SR能避免莫名其妙的错误
u8 UART4_RX_BUF[UART4_REC_LEN]; //接收缓冲,最大USART_REC_LEN个字节.
//接收状态
//bit15, 接收完成标志
//bit14, 接收到0x0d
//bit13~0, 接收到的有效字节数目
u16 UART4_RX_STA=0; //接收状态标记
u8 voice_cmd = 0;
void uart4_init(u32 bound)
{//GPIO端口设置
GPIO_InitTypeDef GPIO_InitStructure;USART_InitTypeDef USART_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4, ENABLE); //??UART4??RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能UART4,GPIOC时钟USART_DeInit(UART4); //????4//UART4_TX PC10GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //PC.10GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出GPIO_Init(GPIOC, &GPIO_InitStructure); //初始化GPIOC.9//UART4_RX PC.11GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入GPIO_Init(GPIOC, &GPIO_InitStructure); //初始化GPIOC.10
//UART ?????USART_InitStructure.USART_BaudRate = bound; //波特率9600;USART_InitStructure.USART_WordLength = USART_WordLength_8b; //字长为8位数据格式USART_InitStructure.USART_StopBits = USART_StopBits_1; //一个停止位
USART_InitStructure.USART_Parity = USART_Parity_No; //无奇偶校验位USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; //无硬件数据流控制
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收发模式USART_Init(UART4, &USART_InitStructure); //初始化串口4//Usart4 NVIC ??NVIC_InitStructure.NVIC_IRQChannel = UART4_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//抢占优先级3NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;//子优先级3NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器USART_ITConfig(UART4, USART_IT_RXNE, ENABLE); //开启串口接受中断USART_Cmd(UART4, ENABLE); //使能串口4 }void UART4_IRQHandler(void) //串口4中断服务程序 语音控制模块
{u8 Res;if(USART_GetITStatus(UART4, USART_IT_RXNE) != RESET) //接收中断(接收到的数据必须是0x0d 0x0a结尾){Res =USART_ReceiveData(UART4); //读取接收到的数据printf("Res:%c",Res); switch(Res){case 01: voice_cmd = 1;break;case 02: voice_cmd = 2;break;case 03: voice_cmd = 3;break;case 04: voice_cmd = 4;break;case 05: //后续功能break;case 06:break;}TIM_Cmd(TIM4, ENABLE); //关闭TIM4}
}
还有uart.h的代码:
#ifndef __UART4_H
#define __UART4_H
#include "stdio.h"
#include "sys.h" #define UART4_REC_LEN 200 //定义最大接收字节数 200
extern u8 voice_cmd;
extern u8 UART4_RX_BUF[UART4_REC_LEN]; //接收缓冲,最大USART_REC_LEN个字节.末字节为换行符
extern u16 UART4_RX_STA; //接收状态标记
//如果想串口中断接收,请不要注释以下宏定义
void uart4_init(u32 bound);
#endif
想说明一下,为什么我要使用同步串口通信呢?因为串口1 被WiFi的内置函数占用了,串口二串口三也被其他功能使用了,剩下串口四和串口五,但是它俩是同步的,没学过,只好硬着头皮去用咯…
单片机的所有代码在这里
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- 兼容Android29的网络连接及网络状态工具。
最近项目升级到Android29版本发现网络连接及网络类型的好多方法都被弃用了。比如以往获取网络状态我们会使用NetworkInfo来获取但是现在这个类已经完全被抛弃了。而Google官网推荐我们使用ConnectivityManager#NetworkCallback回调的这种方式,也可以使用ConnectivityManager#g…...
2024/4/18 15:54:11 - python环境的安装和配置过程
python环境的安装和配置过程官网下载链接:https://www.python.org 百度网盘链接:https://pan.baidu.com/s/1ceKDp7qevpnpANPf2_iLaA 提取码:v0wp (只提供版本:3.8.0建议内置文件全部下载)python的版本:python2.x(2020年起官方放弃维护)python3.x 建议官方下载3.5以上版本…...
2024/4/17 1:53:45 - Java 线程安全问题详解
为什么会有线程安全的问题? 比如两个人同时去做同一件事情,会很快,但是呢,因为要做同一件事,很有可能就会发生争抢冲突,导致这个事情被玩坏 我这里举了一个例子,我和我女朋友(存在的)一起洗碗 我和我女朋友各自是一个线程,对碗进行洗碗操作 代码示例: 首先是创建一个…...
2024/4/20 7:02:55 - 巨控远程模块快速选型,GRM530,GRM230,GRM110,GRMOPC
巨控远程模块快速选型,GRM530,GRM230,GRM110,GRMOPC 1.巨控科技的PLC远程模块的快速选项。 最新系列GRM530系列(代换GRM500)、GRM230系列(代换GRM200)、GRMOPC系列, 选型需要明确步骤: 第1步:确定PLC类型和数量,PLC具备的通信端口 第2步:确定客户的功能需求,短信…...
2024/4/17 1:54:51 - 【软件测试】使用Charles对Android App的https请求进行抓包
本文背景公司新项目要求抓取目前市面上一些热门App的数据,经过研究发现很多App的网络请求都使用https进行数据传输,这样问题就来了,http使用明文传输所有请求都能拦截到,而https请求无法拦截。 所以这里我们要使用Charles来抓取https,但是笔者看了网上很多使用iOS设备进行…...
2024/4/27 20:09:36 - js逆向-ast混淆还原进阶案例(1)
我啥也不说,自行领悟。混淆代码:var _0x1491 = [\x77\x35\x58\x43\x6a\x33\x54\x43\x6b\x77\x77\x3d, \x63\x63\x4f\x6e\x4a\x56\x30\x6d, \x77\x36\x59\x53\x57\x38\x4f\x4f\x77\x6f\x6f\x3d, \x63\x73\x4f\x61\x52\x38\x4f\x6a\x4e\x77\x3d\x3d, \x4a\x6b\x5a\x45\x41\x63…...
2024/4/17 1:54:57 - 使用go生成以太坊私钥并获取其地址查询余额
最近突然有个想法,就是能不能用计算机随机生成的以太坊私钥来进行碰撞,要是运气好的话就可以得到拥有余额的以太坊地址的私钥.虽然几率很小.不过还是可以试试大致思路是这样1.先随机生成私钥,然后通过私钥生成公钥,在生成地址.2.把生成的地址通过api请求https://infura.io服务商…...
2024/4/20 7:18:07 - 淘东电商项目(72) -互联网安全架构设计(责任链模式重构网关流程)
引言本文代码已提交至Github(版本号:a27a585f2c3e71c17d59da1e1ea1480da1e90ba5),有兴趣的同学可以下载来看看:https://github.com/ylw-github/taodong-shop在之前博客《淘东电商项目(67) -互联网安全架构设计(方法论)》,主要讲解了互联网安全架构设计的方法,主要介…...
2024/4/23 15:38:59 - js中let和var定义变量的区别
声明后未赋值,表现相同:function() {var varTest;let letTest;console.log(varTest); //输出undefinedconsole.log(letTest); //输出undefined});使用未声明的变量,表现不同:function() {console.log(varTest); //输出undefined(注意要注释掉下面一行才能运行)console.log(le…...
2024/4/23 15:39:05 - 2020年4月云主机性能评测报告
在2020年4月云主机性能综合排行榜中,UCloud-北京位居榜首,百度云-北京和百度云-广州分列第二、三名。评测工具:基于全球监控网络,模拟真实有效的客户现场环境,分别创建传输任务和网络任务,从真实用户角度感知业务应用体验。评测对象:腾讯云、阿里云、百度云、华为云、金…...
2024/4/23 15:38:57 - 工厂模式
前言 部分摘自:《设计模式之禅》 这本书 工厂模式的定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使-一个 类的实例化延迟到其子类。一个好理解的例子:东汉《风俗通》记录了一则神话故事, 开天辟地,未有人民,女娲搏黄土做人”,讲述的内容就是大…...
2024/4/23 15:38:59 - The Biggest Water Problem(水题)
链接:https://ac.nowcoder.com/acm/problem/15173 来源:牛客网 题目描述 给你一个数,让他进行巴啦啦能量,沙鲁沙鲁,小魔仙大变身,如果进行变身的数不满足条件的话,就继续让他变身。。。直到满足条件为止。 巴啦啦能量,沙鲁沙鲁,小魔仙大变身:对于一个数,把他所有位上…...
2024/4/23 15:38:55 - 用Matlab做论文图片的一些总结
本文记录写毕业论文时,通过MATLAB绘制图片的一些细节问题。 1、坐标轴 坐标轴名称中既有中文又有英文,通常中文用宋体,英文用新罗马: xlabel(\fontname{宋体}\fontsize{16}时间/\fontname{Times New Roman}\fontsize{16}s); ylabel(\fontname{宋体}\fontsize{16}接合转矩/\…...
2024/4/23 15:39:01 - docker容器基本命令
容器(Container)——镜像运行时的实体 镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等 。 容器的实质是进程,但与直接在宿主执行的进程不同,容…...
2024/4/23 15:38:54 - test-md
hello haha1 haha2AAA BBB CCClistA B C...
2024/4/23 15:38:52 - [备注]docker部署nginx,挂载nginx.conf
docker pull nginx 一般启动docker run --name nginx81 -d -p 81:80 -v \ /usr/docker/nginx81/html/:/usr/share/nginx/html:ro -d nginx或者明确添加日志记录启动docker run --name nginx81 -d -p 81:80 -v /usr/docker/nginx81/html/:/usr/share/nginx/html:ro \-v /logs:/v…...
2024/4/17 1:55:15 - 基于Scrapy框架实现网络爬虫-Python
1. 网络爬虫原理 互联网上大量的信息以网页形式提供给用户,用户通过浏览器从服务器获得网页数据并经过浏览器解析后,进行网页阅读、内容复制、链接单击等操作。用户与网页服务器的通信是通过HTTP或者HTTPS实现的,网络浏览器是用户向服务器发送请求数据、接收服务器回应数据、…...
2024/4/27 18:21:56 - Java将带小数点的String类型值转换成int值
前言 今天在请求后台获取数据的时候,后台小哥给我挖了个坑 用到的数据是个int值 他给我返回个 String num = “29.00” 这样的字段 我去找他理论 他说:我后台不可能全都给你设置好的 有些数据需要你自己的处理 再显示!听后台小哥说完 我觉得他说的有道理 搞的有点不好意思 哈…...
2024/4/17 1:55:03 - LeetCode题目:1448. 统计二叉树中好节点的数目
题目 题目链接:https://leetcode-cn.com/problems/count-good-nodes-in-binary-tree/ 题目解析:使用DFS搜索,带着之前最大的值搜索遍历二叉树。 代码 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode r…...
2024/4/17 1:54:57 - Tomcat设置项目内存的相关问题 (Service服务和startup命令行启动方式)
设置的方法在下文~问题背景近日,负责的项目在正式环境内,对大数据量导出为Excel进行操作时,表现得异常卡顿,经常出现500连接超时、内存溢出等异常。最初技术组认为是代码需要进行优化,将原本的导出代码copy了一份后,修改为达到限制的导出上限就分为另一个Excel,最后以ZI…...
2024/4/28 4:40:53
最新文章
- ICSE 2024 PaperList1
1. 勒索软件攻击造成的数据破坏的实证研究 An Empirical Study of Data Disruption by Ransomware Attacks 近年来,勒索软件对软件生态系统的威胁日益令人担忧,这就提出了对大规模、全面的勒索软件分析的需求,以帮助针对未知攻击制定更有效…...
2024/5/6 5:22:05 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - 探索进程控制第一弹(进程终止、进程等待)
文章目录 进程创建初识fork函数fork函数返回值fork常规用法fork调用失败的原因 写时拷贝进程终止进程终止是在做什么?进程终止的情况代码跑完,结果正确/不正确代码异常终止 如何终止 进程等待概述进程等待方法wait方法waitpid 进程创建 初识fork函数 在…...
2024/5/5 1:11:34 - 【嵌入式开发 Linux 常用命令系列 4.3 -- git add 不 add untracked file】
请阅读【嵌入式开发学习必备专栏 】 文章目录 git add 不add untracked file git add 不add untracked file 如果你想要Git在执行git add .时不添加未跟踪的文件(untracked files),你可以使用以下命令: git add -u这个命令只会加…...
2024/5/5 8:53:25 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/4 23:54:56 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/4 23:54:56 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到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/4 23:55:17 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
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/4 23:55:16 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和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/4 23:55:06 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
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/4 23:55:01 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含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