在linux下编写终端程序时,有规范模式 ,非规范模式(原始模式特殊的非规范模式)之分。不用于终端,而是在串口这种使用情况下,一般设置为原始模式(非规范的一种特殊情况)。但用read()函数,希望从串口接收指定的数量的字符时,往往接收到的实际字符数,都与指定的不同。如本人用read()希望接收 10 bytes的数据,但实验后发现,分了几次才接收到,俩次接收2bytes ,两次接收3bytes。

查阅相关资料得知:

一般地串口的读写模式有直接模式和缓存模式,在直接模式下,串口的读写都是单字节的,也就是说一次的read或write只能操作一个字节;
        但是大部份串口芯片都支持缓存模式,缓存模式一般同时支持中断聚合和超时机制,也就是说在有数据时,当缓存满或者超时时间到时,都会触发读或写中断。写的时候可以将要操作的数据先搬到缓存里,然后启动写操作,芯片会自动将一连串的数据写出,在读的时候类似,一次读到的是串口芯片缓存里的数据。串口设备的缓存一般有限,一次能read到的最大字节数就是缓存的容量。所以串口芯片的缓存容量决定了你一次能收到的字节数。本人用一个usb转232来充当串口接收时,发现一次可以接收8个bytes。
 
        对于具体一次传输多少字节也不去追究了,总之通讯过程中无法保证一次发送的数据肯定是一次接收的,所以必须写代码 来一次一次的接收,直到接收满足预定的为止,当然在此过程中得使用select/poll来避免超时接收。
 
即从通讯的角度来说,接受方必须自己解决如何识别一个祯的问题。
(操作串口相当于操作物理层,OSI/ISO模型中的第一层,解决祯同步问题是第二层的任务,所以我们需要自己搭一个第二层。
也就是说:我们需要通过定义通讯协议,规定数据的内容自己分析什么时候收完了一次需要的数据。因为通讯过程中无法保证一次发送的数据肯定是一次接收的)
 
下面来解决识别帧的问题:
 
           不是编写终端,我们一帮都采用原始模式;进行简单的串口编程,一般设置成阻塞模式,便可以了。但是在大多数应用场合,把串口设置成阻塞模式是很不实用的,如read()时,如果没有数据发来,这程序一直会阻塞在这里(除非用多线程)。因此一般把其设置为非阻塞模式。一般是需要用串口读取指定长度的数据,但是read函数实际读取的数据长度,往往会与指定的不同,所以必须自己编写一个读写N字节数据的函数:
             很快想到用个循环,但是循环中必须有 ‘即使一直没有收到指定长度的数据但在一定时间后也必须跳出循环’的机制,否则就与阻塞模式的没有区别了(也就是让函数一直等,等到指定长度数据接收为止)。参考下APUE的程序清单14-11的readn()函数,此函数看似很好,但是它不适合用于串口的读取,因为它一旦if(nread = read(fd, ptr, nleft) < 0)就立刻会跳出循环,没有丝毫的时间上的容限,而串口的接收必然没有这么快,如若波特率为1200,是比较慢的。俩个字节传输的间隔,其都会被判断为错误而跳出。当然该函数对于读写文件是非常好用的。
ssize_t             /* Read "n" bytes from a descriptor  */
readn(int fd, void *ptr, size_t n)
{
size_t  nleft;
ssize_t  nread;
 nleft = n;
while (nleft > 0) {
if ((nread = read(fd, ptr, nleft)) < 0) {
if (nleft == n)
return(-1); /* error, return -1 */
else
break;      /* error, return amount read so far */
} else if (nread == 0) {
break;          /* EOF */
}
nleft -= nread;
ptr   += nread;
}
return(n - nleft);      /* return >= 0 */
}

         再次参考下APUE的tread() 和treadn()函数,这组函数结合了select函数,使得在放弃之前,有了个时间来阻塞。有了一定的时间容限。例如把select中的tv.tv_sec= 1;这样就不会把 原本正常的俩个字节的时间间隔,误判为错误了。

 

ssize_t

tread(int fd, void *buf, size_t nbytes, unsigned int timout)

{

       int                         nfds;

       fd_set                   readfds;

       struct timeval  tv;

 

       tv.tv_sec = timout;

       tv.tv_usec = 0;

       FD_ZERO(&readfds);

       FD_SET(fd, &readfds);

       nfds = select(fd+1, &readfds, NULL, NULL, &tv);

       if (nfds <= 0) {

              if (nfds == 0)

                     errno = ETIME;

              return(-1);

       }

       return(read(fd, buf, nbytes));

}

 ssize_t

treadn(int fd, void *buf, size_t nbytes, unsigned int timout)

{

       size_t      nleft;

       ssize_t     nread;

 

       nleft = nbytes;

       while (nleft > 0) {

              if ((nread = tread(fd, buf, nleft, timout)) < 0) {

                     if (nleft == nbytes)

                            return(-1); /* error, return -1 */

                     else

                            break;      /* error, return amount read so far */

              } else if (nread == 0) {

                     break;          /* EOF */

              }

              nleft -= nread;

              buf += nread;

       }

       return(nbytes - nleft);      /* return >= 0 */

}

实际应用如:

某个串口通信协议一帧为10个字节,linux 必须接收1帧后去解析该帧的命令。波特率1200 。在linux中必须有个读取一帧数据的函数,该函数不能‘一直等待接收10个字节’,而必须在一定时间内没有收到完整的一帧就放弃该帧,这样才能防止对方发送错误或者通信中的错误带来的问题。 利用treadn()很好的配合该思路的实现。可以定时限为10ms。如果超过10ms(可以设置长点)这treadn()也会返回,这时判断如果实际收到的数据小于10,则丢弃即可。本人用1200的波特率,tv设置成了500us,工作的很好。

 
最后贴一个经典的串口编程基础:
 
1.串口操作需要的头文件

#include <stdio.h>         //标准输入输出定义
#include <stdlib.h>        //标准函数库定义
#include <unistd.h>       //Unix标准函数定义
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>          //文件控制定义
#include <termios.h>     //POSIX中断控制定义
#include <errno.h>        //错误号定义

2.打开串口

串口位于/dev中,可作为标准文件的形式打开,其中:
串口1 /dev/ttyS0
串口2 /dev/ttyS1
代码如下:
int fd;
fd = open(“/dev/
ttyS0”, O_RDWR);
if(fd == -1
)
{
Perror(“串口1打开失败!”);
}
//
else
//fcntl(fd, F_SETFL, FNDELAY);
除了使用O_RDWR标志之外,通常还会使用O_NOCTTY和O_NDELAY这两个标志。
O_NOCTTY:告诉Unix这个程序不想成为“控制终端”控制的程序,不说明这个标志的话,任何输入都会影响你的程序。
O_NDELAY:告诉Unix这个程序不关心DCD信号线状态,即其他端口是否运行,不说明这个标志的话,该程序就会在DCD信号线为低电平时停止。

3.设置波特率

最基本的串口设置包括波特率、校验位和停止位设置,且串口设置主要使用termios.h头文件中定义的termios结构,如下:
struct termios
{
tcflag_t  c_iflag;   //输入模式标志
tcflag_t  c_oflag;  //输出模式标志
tcflag_t  c_cflag;  //控制模式标志
tcflag_t  c_lflag;   //本地模式标志
cc_t   c_line;              //line discipline
cc_t   c_cc[NCC];    //control characters
}
代码如下:
int speed_arr[] = { B38400, B19200, B9600, B4800, B2400, B1200, B300, B38400, B19200, B9600, B4800, B2400, B1200, B300, };
int name_arr[] = {38400, 19200, 9600, 4800, 2400, 1200, 300, 38400, 19200, 9600, 4800, 2400, 1200, 300
, };

void SetSpeed(int fd, int
 speed)
{
int
 i;
struct termios Opt;    //定义termios结构


    if(tcgetattr(fd, &Opt) != 0)
{
perror(“tcgetattr fd”);
return
;
}
for(i = 0; i < sizeof(speed_arr) / sizeof(int); i++
)
{
if(speed ==
 name_arr[i])
{
tcflush(fd, TCIOFLUSH);
cfsetispeed(&
Opt, speed_arr[i]);
cfsetospeed(&
Opt, speed_arr[i]);
if(tcsetattr(fd, TCSANOW, &Opt) != 0
)
{
perror(“tcsetattr fd”);
return
;
}
tcflush(fd, TCIOFLUSH);
}
}
}
注意tcsetattr函数中使用的标志:
TCSANOW:立即执行而不等待数据发送或者接受完成。
TCSADRAIN:等待所有数据传递完成后执行。
TCSAFLUSH:Flush input and output buffers and make the change

4.设置数据位、停止位和校验位

以下是几个数据位、停止位和校验位的设置方法:(以下均为1位停止位)
8位数据位、无校验位:
Opt.c_cflag &= ~PARENB;
Opt.c_cflag &= ~CSTOPB;
Opt.c_cflag &= ~CSIZE;
Opt.c_cflag |= CS8;
7位数据位、奇校验:
Opt.c_cflag |= PARENB;
Opt.c_cflag |= PARODD;
Opt.c_cflag &= ~CSTOPB;
Opt.c_cflag &= ~CSIZE;
Opt.c_cflag |= CS7;
7位数据位、偶校验:
Opt.c_cflag |= PARENB;
Opt.c_cflag &= ~PARODD;
Opt.c_cflag &= ~CSTOPB;
Opt.c_cflag &= ~CSIZE;
Opt.c_cflag |= CS7;
7位数据位、Space校验:
Opt.c_cflag &= ~PARENB;
Opt.c_cflag &= ~CSTOPB;
Opt.c_cflag &= ~CSIZE;
Opt.c_cflag |= CS7;
代码如下:
int SetParity(int fd, int databits, int stopbits, int parity)
{
struct
 termios Opt;
if(tcgetattr(fd, &Opt) != 0
)
{
perror("tcgetattr fd"
);
return
 FALSE;
}
Opt.c_cflag |= (CLOCAL | CREAD);        //一般必设置的标志


    switch(databits)        //设置数据位数
    {
case 7
:
Opt.c_cflag &= ~
CSIZE;
Opt.c_cflag |=
 CS7;
break
;
case 8
:
Opt.c_cflag &= ~
CSIZE;
Opt.c_cflag |=
 CS8;
berak;
default
:
fprintf(stderr, "Unsupported data size.\n"
);
return
 FALSE;
}

switch(parity)            //设置校验位

    {
case 'n'
:
case 'N'
:
Opt.c_cflag &= ~PARENB;        //清除校验位

        Opt.c_iflag &= ~INPCK;        //enable parity checking
        break;
case 'o'
:
case 'O'
:
Opt.c_cflag |= PARENB;        //enable parity

        Opt.c_cflag |= PARODD;        //奇校验
        Opt.c_iflag |= INPCK            //disable parity checking
        break;
case 'e'
:
case 'E'
:
Opt.c_cflag |= PARENB;        //enable parity

        Opt.c_cflag &= ~PARODD;        //偶校验
        Opt.c_iflag |= INPCK;            //disable pairty checking
        break;
case 's'
:
case 'S'
:
Opt.c_cflag &= ~PARENB;        //清除校验位

        Opt.c_cflag &= ~CSTOPB;        //??????????????
        Opt.c_iflag |= INPCK;            //disable pairty checking
        break;
default
:
fprintf(stderr, "Unsupported parity.\n"
);
return
 FALSE;    
}

switch(stopbits)        //设置停止位

    {
case 1
:
Opt.c_cflag &= ~
CSTOPB;
break
;
case 2
:
Opt.c_cflag |=
 CSTOPB;
break
;
default
:
fprintf(stderr, "Unsupported stopbits.\n"
);
return
 FALSE;
}

opt.c_cflag |= (CLOCAL |
 CREAD);

opt.c_lflag &= ~(ICANON | ECHO | ECHOE |
 ISIG);

opt.c_oflag &= ~
OPOST;
opt.c_oflag &= ~(ONLCR | OCRNL);    //添加的

 
opt.c_iflag &= ~(ICRNL |
 INLCR);
opt.c_iflag &= ~(IXON | IXOFF | IXANY);    //添加的


    tcflush(fd, TCIFLUSH);
Opt.c_cc[VTIME] 
= 0;        //设置超时为15sec
    Opt.c_cc[VMIN] = 0;        //Update the Opt and do it now
    if(tcsetattr(fd, TCSANOW, &Opt) != 0)
{
perror("tcsetattr fd"
);
return
 FALSE;
}

return
 TRUE;
}

5.某些设置项

在第四步中我们看到一些比较特殊的设置,下面简述一下他们的作用。
c_cc数组的VSTART和VSTOP元素被设定成DC1和DC3,代表ASCII标准的XON和XOFF字符,如果在传输这两个字符的时候就传不过去,需要把软件流控制屏蔽,即:
Opt.c_iflag &= ~ (IXON | IXOFF | IXANY);
有时候,在用write发送数据时没有键入回车,信息就发送不出去,这主要是因为我们在输入输出时是按照规范模式接收到回车或换行才发送,而更多情况下我们是不必键入回车或换行的。此时应转换到行方式输入,不经处理直接发送,设置如下:
Opt.c_lflag &= ~ (ICANON | ECHO | ECHOE | ISIG);
还存在这样的情况:发送字符0X0d的时候,往往接收端得到的字符是0X0a,原因是因为在串口设置中c_iflag和c_oflag中存在从NL-CR和CR-NL的映射,即串口能把回车和换行当成同一个字符,可以进行如下设置屏蔽之:
Opt.c_iflag &= ~ (INLCR | ICRNL | IGNCR);
Opt.c_oflag &= ~(ONLCR | OCRNL);

6.读写串口

发送数据方式如下,write函数将返回写的位数或者当错误时为-1。
char buffer[1024];
int length;
int nByte;
nByte = write(fd, buffer, length);
读取数据方式如下,原始数据模式下每个read函数将返回实际串口收到的字符数,如果串口中没有字符可用,回叫将会阻塞直到以下几种情况:有字符进入;一个间隔计时器失效;错误发送。
在打开串口成功后,使用fcntl(fd, F_SETFL, FNDELAY)语句,可以使read函数立即返回而不阻塞。FNDELAY选项使read函数在串口无字符时立即返回且为0。
char buffer[1024];
int length;
int readByte;
readByte = read(fd, buffer, len);
注意:设置为原始模式传输数据的话,read函数返回的字符数是实际串口收到的字符数。Linux下直接用read读串口可能会造成堵塞,或者数据读出错误,此时可使用tcntl或者select等函数实现异步读取。用select先查询com口,再用read去读就可以避免上述错误。

7.关闭串口

串口作为文件来处理,所以一般的关闭文件函数即可:
close(fd);

8.例子

这个例子中,需要打开串口1,设置9600波特率、8位数据位、1位停止位以及空校验,之后利用while语句循环判断串口中是否可以读出数据,将串口中数据连续读出后重新写回到串口中。
该程序可与minicom联合测试。
#include     <stdio.h>
#include     <stdlib.h> 
#include     <unistd.h>
  
#include     <sys/types.h>

#include     <sys/stat.h>
#include     <fcntl.h> 
#include     <termios.h>

#include     <errno.h>
   
main()
{
int fd;
int
 i;
int
 len;
int n = 0
;      
char read_buf[256
];
char write_buf[256
];
struct
 termios opt; 

fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY);    //默认为阻塞读方式

    if(fd == -1)
{
perror("open serial 0\n"
);
exit(0
);
}

tcgetattr(fd, &
opt);      
cfsetispeed(&
opt, B9600);
cfsetospeed(&
opt, B9600);

if(tcsetattr(fd, TCSANOW, &opt) != 0
 )
{     
perror("tcsetattr error"
);
return -1
;
}

opt.c_cflag &= ~
CSIZE;  
opt.c_cflag |=
 CS8;   
opt.c_cflag &= ~
CSTOPB; 
opt.c_cflag &= ~
PARENB; 
opt.c_cflag &= ~
INPCK;
opt.c_cflag |= (CLOCAL |
 CREAD);

opt.c_lflag &= ~(ICANON | ECHO | ECHOE |
 ISIG);

opt.c_oflag &= ~
OPOST;
opt.c_oflag &= ~(ONLCR | OCRNL);    //添加的

 
opt.c_iflag &= ~(ICRNL |
 INLCR);
opt.c_iflag &= ~(IXON | IXOFF | IXANY);    //添加的

    
opt.c_cc[VTIME] = 0
;
opt.c_cc[VMIN] = 0
;

tcflush(fd, TCIOFLUSH);

printf("configure complete\n"
);

if(tcsetattr(fd, TCSANOW, &opt) != 0
)
{
perror("serial error"
);
return -1
;
}
printf("start send and receive data\n"
);

while(1
)
{    
n = 0
;
len = 0
;
bzero(read_buf, sizeof(read_buf));    //类似于memset

        bzero(write_buf, sizeof(write_buf));

while( (n = read(fd, read_buf, sizeof(read_buf))) > 0
 )
{
for(i = len; i < (len + n); i++
)
{
write_buf[i] = read_buf[i -
 len];
}
len +=
 n;
}
write_buf[len] = '\0'
;

printf("Len %d \n"
, len);
printf("%s \n"
, write_buf);

n =
 write(fd, write_buf, len);
printf("write %d chars\n"
,n);

sleep(2
);
}
}


9.附录

c_cflag用于设置控制参数,除了波特率外还包含以下内容: 
EXTA         External rate clock
EXTB         External rate clock
CSIZE         Bit mask for data bits
CS5         5个数据位
CS6         6个数据位
CS7         7个数据位
CS8         8个数据位
CSTOPB         2个停止位(清除该标志表示1个停止位
PARENB         允许校验位
PARODD         使用奇校验(清除该标志表示使用偶校验)
CREAD         Enable receiver
HUPCL         Hangup (drop DTR) on last close
CLOCAL         Local line – do not change “owner” of port
LOBLK         Block job control outpu
c_cflag标志可以定义CLOCAL和CREAD,这将确保该程序不被其他端口控制和信号干扰,同时串口驱动将读取进入的数据。CLOCAL和CREAD通常总是被是能的。

c_lflag用于设置本地模式,决定串口驱动如何处理输入字符,设置内容如下:
ISIG            Enable SIGINTR, SIGSUSP, SIGDSUSP, and SIGQUIT signals 
ICANON         Enable canonical input (else raw) 
XCASE         Map uppercase \lowercase (obsolete) 
ECHO         Enable echoing of input characters 
ECHOE         Echo erase character as BS-SP-BS 
ECHOK         Echo NL after kill character 
ECHONL         Echo NL 
NOFLSH         Disable flushing of input buffers after interrupt or quit characters 
IEXTEN         Enable extended functions 
ECHOCTL         Echo control characters as ^char and delete as ~? 
ECHOPRT         Echo erased character as character erased 
ECHOKE         BS-SP-BS entire line on line kill 
FLUSHO         Output being flushed 
PENDIN         Retype pending input at next read or input char 
TOSTOP         Send SIGTTOU for background output

c_iflag用于设置如何处理串口上接收到的数据,包含如下内容:
INPCK         Enable parity check 
IGNPAR         Ignore parity errors 
PARMRK      Mark parity errors 
ISTRIP         Strip parity bits 
IXON         Enable software flow control (outgoing) 
IXOFF         Enable software flow control (incoming) 
IXANY         Allow any character to start flow again 
IGNBRK         Ignore break condition 
BRKINT         Send a SIGINT when a break condition is detected 
INLCR         Map NL to CR 
IGNCR         Ignore CR 
ICRNL         Map CR to NL 
IUCLC         Map uppercase to lowercase 
IMAXBEL      Echo BEL on input line too long

c_oflag用于设置如何处理输出数据,包含如下内容:
OPOST         Postprocess output (not set = raw output) 
OLCUC         Map lowercase to uppercase 
ONLCR         Map NL to CR-NL 
OCRNL         Map CR to NL 
NOCR         No CR output at column 0 
ONLRET      NL performs CR function 
OFILL         Use fill characters for delay 
OFDEL         Fill character is DEL 
NLDLY         Mask for delay time needed between lines 
NL0            No delay for NLs 
NL1            Delay further output after newline for 100 milliseconds 
CRDLY      Mask for delay time needed to return carriage to left column 
CR0            No delay for CRs 
CR1            Delay after CRs depending on current column position 
CR2            Delay 100 milliseconds after sending CRs 
CR3            Delay 150 milliseconds after sending CRs 
TABDLY      Mask for delay time needed after TABs 
TAB0            No delay for TABs 
TAB1         Delay after TABs depending on current column position 
TAB2         Delay 100 milliseconds after sending TABs 
TAB3         Expand TAB characters to spaces 
BSDLY      Mask for delay time needed after BSs 
BS0         No delay for BSs 
BS1         Delay 50 milliseconds after sending BSs 
VTDLY      Mask for delay time needed after VTs 
VT0         No delay for VTs 
VT1         Delay 2 seconds after sending VTs 
FFDLY      Mask for delay time needed after FFs 
FF0         No delay for FFs 
FF1         Delay 2 seconds after sending FFs

c_cc定义了控制字符,包含以下内容:
VINTR  Interrupt  CTRL-C 
VQUIT  Quit    CTRL-Z 
VERASE   Erase    Backspace (BS) 
VKILL   Kill-line   CTRL-U 
VEOF   End-of-file   CTRL-D 
VEOL   End-of-line   Carriage return (CR) 
VEOL2   Second    end-of-line Line feed (LF) 
VMIN   Minimum number of characters to read  
VSTART   Start flow   CTRL-Q (XON) 
VSTOP   Stop flow   CTRL-S (XOFF) 
VTIME   Time to wait for data (tenths of seconds) 

注意:控制符VTIME和VMIN之间有复杂的关系。VTIME定义要求等待的时间(百毫米,通常是unsigned char变量),而VMIN定义了要求等待的最小字节数(相比之下,read函数的第三个参数指定了要求读的最大字节数)。
如果VTIME=0,VMIN=要求等待读取的最小字节数,read必须在读取了VMIN个字节的数据或者收到一个信号才会返回。
如果VTIME=时间量,VMIN=0,不管能否读取到数据,read也要等待VTIME的时间量。
如果VTIME=时间量,VMIN=要求等待读取的最小字节数,那么将从read读取第一个字节的数据时开始计时,并会在读取到VMIN个字节或者VTIME时间后返回。
如果VTIME=0,VMIN=0,不管能否读取到数据,read都会立即返回。

如何清除串口缓冲区中的数据

tcflush函数清除串口输入缓存(终端驱动已接到,但用户尚未读取)或串口输出缓存(用户已经写如缓存,但尚未发送)。

函数原型:

int tcflush(int filedes,int quene)

参数解释

filedes:  描述符。

quene取值及含义:

   *TCIFLUSH  清除输入队列
   *TCOFLUSH  清除输出队列
   *TCIOFLUSH 清除输入、输出队列

举例:tcflush(fd,TCIOFLUSH);


另加的说明:

在打开串口后,用户其实其实已经可以开始从串口读取数据了,但如果用户没有读取,数据将被将保存在缓冲区里。如果用户不想要开始的一段数据,或者发现缓冲区数据有误,可以使用这个函数将缓冲区清空。


应用举例:

tcflush(fd, TCIOFLUSH);

sleep(2);
read_len = read(fd, buff, 10);

这样,在sleep之前的输入输出队列中的数据都被清空了。


查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. Activity或者Fragment的onResume()方法妙用

    我们常常会碰到这样的需求 1.当从A页面跳转到B页面,再从B页面返回A页面时,需要A页面刷新 2.在A页面中弹出一个Dialog,在Dialog做出相关操作,A页面内容发生了改变 以上两种情况,页面默认都会保持原样,要实现页面的刷新只需要重写Activity或者Fragment的onResume()方法,在…...

    2024/4/28 7:40:49
  2. Unity开发安卓游戏(2):基于安卓游戏的优化方案总结!

    有几篇好的博文,关于Unity安卓游戏的优化方案,和大家分享下!基于Unity3d 引擎的Android游戏优化最近项目进入收尾阶段,之前对项目做了很多优化,mesh合并 ,减少DrawCall和模型骨骼以及物理计算,合并材质球,优化代码等等,在IOS上还好,但是Android上,试过几款手机,从低…...

    2024/4/21 8:27:31
  3. js截取字符串的常用方法

    1.使用substring()或者split() 函数:split();使用一个指定的分隔符把一个字符串分割储存到数组中。var str="jpg|bmp|png|gif";var arr=str.split(|);函数:join();使用你选择的分隔符将一个数组合并成字符串 var mylist=new Array("jpg","png"…...

    2024/4/28 12:39:04
  4. java桌面程序从打包到安装的全过程

    1、整个项目可以跑动,能够在自己电脑上运行,在这里我将关于浏览器解决activityX插件的问题进行综合阐述 背景:由于html5的出现,导致谷歌浏览器不再支持activityX这个插件,从而来支持h5的功能,来适应手机,手机上不可能安装插件,为了解决打印机和读取电子秤的重量读数问题…...

    2024/4/21 8:27:29
  5. Linux串口测试应用程序

    1 Linux终端(串口)210开发板有4个串口 2440开发板有3个串口在2440开发板中三个串口设备对应如下 串口名字 主设备号 次设备号 s3c2410_serial0 204 64 s3c2410_serial1 204 6…...

    2024/4/21 8:27:28
  6. Android设置界面之Preference

    转载自简书:http://www.jianshu.com/p/6d6f84e2f50dAndroid系统为设置界面的UI提供了一系列的接口,设置界面的部分和Activity是分离的,会有一个PreferenceScreen的对象 是根目录,在其中会包含CheckBoxPreference EditTextPreference ListPreference PreferenceCategory Rin…...

    2024/4/21 8:27:27
  7. 字符串截取的方法 slice() substring() substr()-详细对比

    字符串截取是js中的常用功能,主要有三种实现方式,使用场景没有限制,只是每个方法的使用规则不同. 具体内容如下: 1.slice()参数为正时: 1个参数: 参数表示截取的起始位置. 结束位置默认是字符串长度. 2个参数: 分别是截取的起始位置和结束位置.var value = hello world"; …...

    2024/4/21 8:27:26
  8. 海量游戏日志收集与分析

    摘要: 6月29日2016云栖大会成都峰会拉开帷幕,阿里云高级专家简志带来了“海量游戏日志的存储与分析”的重要演讲。从数据、云计算改变游戏行业,再谈到日志服务的整个过程,包括日志的作用、日志处理的挑战,以及日志通道的原理、模型,最后分析了日志服务的部分功能和典型应…...

    2024/4/21 8:27:25
  9. 将自己的python程序打包成.exe/.app(秀同学一脸呐)

    Windows 10 x64macOS Sierra 10.12.4Python 2.7准备好装哔~了么,来吧,做个真正意义上的绿色小软件Win下发布应用起因今天实验室同学看到我的乞丐版二输入规则器,他挺感兴趣的,也想要玩玩,但是他没有装python的环境,总不能让他一直玩我电脑吧,所以想到了将程序打包成exe,…...

    2024/4/21 8:27:25
  10. Linux USB驱动程序设计

    1. USB发展史 USB(Universal Serial Bus ),通用串行总线,是一种外部总线标准,用于规范电脑与外部设备的连接和通讯。 USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的,自1996年推出后,已成功替代串口和并口,成为当今个人电脑和大量智能设备的必配接口…...

    2024/4/21 8:27:23
  11. fragment调用startActivityforResult的回调问题

    在开发过程中,fragment嵌套fragment,多层嵌套后,onActivityforResult()方法无法响应,这个是因为事件传递问题,只响应到根fragment(root Fragment),所以必须到根fragment里截获回调事件。 如:...

    2024/4/21 8:27:22
  12. 怎么用JS截取字符串中第一个和第二个字母间的部分?

    一、JS中用正则判断字符串是否有匹配正则的字符串部分,格式如下:/[a-zA-Z](.*?)[a-zA-Z]/.test(1a123d45678901a2) “.test”前面的部分是正则表达式,后边的部分是要判断的字符串。 二、JS中用正则截取字符串中匹配正则的字符串部分,格式如下:(1a123d45678901a2).match(/…...

    2024/4/21 8:27:21
  13. 微信小游戏登录流程

    花了好几天时间,总算解决了微信小游戏的登录。本来微信登录就比较复杂,再加上前前后后改了些接口,更是痛苦。网上找到的资料总是些零零散散有新有旧,微信自己的文档大致有一个流程,但一些要点和注意事项又语焉不详。今天就从头到尾整理一遍登录过程吧,算是造福一下本就很…...

    2024/4/21 8:27:20
  14. ARM Linux下安装CH341串口驱动

    在arm-Linux环境下安装CH341串口驱动需要单独编译串口的驱动。本人编译环境Ubuntu 14.04gcc编译工具arm-linux-gnueabihf-gcc。1.代码检查 查看内核目录下 kernel/drivers/usb/serial/ch341.c文件 static const struct usb_device_id id_table[] = {{ USB_DEVICE(0x4348,…...

    2024/4/21 8:27:21
  15. Java项目怎么打包成在windows下的可安装程序

    一:将项目文件导出成jar文件:1,找到我们完成的项目代码,导出:(右键单击—>Export)2,选择java —>JAR file 下一步:3,第一个不勾选,下一步:4,选择java类中有main方法的作为入口:下一步:5,点击完成即可在相应的目录下找到导出的jar包:点击jar包可以直接在…...

    2024/4/21 8:27:19
  16. java.lang.ClassCastException: android.app.Application cannot be cast to错误

    完全Android以及Java菜鸟新手, 由于项目需要,这几个月来一直在跟踪Android阶段,唉 各种奔腾就不说。。。。。。在添加新的Application时总是会出现运行出错代码如下: java.lang.ClassCastException: android.app.Application cannot be cast to com.android.XXX.XXX的错误信…...

    2024/4/20 18:30:41
  17. linux 串口工具的安装

    windows 串口工具一般是用SecureCRT ,linux 下一般用kermit.现在我介绍一下deepin linux 下的kermit 的安装。1.确保你的deepin能够联网。sudo apt-get install ckermit在使用kermic 前我们先建立一个配置文件,在/home/nicehuai(你的用户名)下建立一个./.kermrc,写入下…...

    2024/4/20 18:30:40
  18. Visual Studio 2017&C#打包应用程序详细教程,重写安装类获取安装路径,附加各种奇葩问题描述

    前言C#写好一个应用程序,总想分享给自己的朋友或者上架,然而被困在打包之外,这次为大家带来近期我的经验,经过几天的摸索,发现网上的教程并不全面,会给初学者带来很多疑问,这里将做些问题描述与解答。 /** 开发工具:Visual Studio 2017 系统版本:win10 x64 要求:已…...

    2024/4/20 18:30:38
  19. 基于Java的开源3D游戏引擎jMonkeyEngine

    jMonkeyEngine简介jMonkeyEngine是一款纯Java语言编写的游戏引擎,继承了Java应用跨平台的特性,而且是开放源代码的,遵循BSD开源协议,BSD开源协议用一句简单的话概括就是你可以用它做任何你想做的事情而不必担心版权问题。这款游戏引擎在商业游戏中使用的不多,但是笔者觉得…...

    2024/4/20 18:30:37
  20. Android-ViewModel和LiveData使用

    ViewModel类的设计目的是以一种关注生命周期的方式存储和管理与UI相关的数据。 例如:Activity在配置发生改变时(屏幕旋转),Activity就会重新创建,onCreate()方法也会重新调用。我们可以在onSaveInstanceState()方法中保存数据,并从onCreate()方法中通过Bundle恢复数据,但这…...

    2024/4/21 8:27:17

最新文章

  1. 第十五届蓝桥杯省赛第二场C/C++B组C题【传送阵】题解(AC)

    解题思路 由于 a a a 数组是一个 1 1 1 到 n n n 的一个排列&#xff0c;那么形成的一定是如下形式&#xff1a; 一定会构成几个点的循环&#xff0c;或者是几个单独的点。 从任意点开始&#xff0c;如果能进入一个循环&#xff0c;一定可以将整个循环的宝藏都拿走&#x…...

    2024/4/28 17:13:32
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 虚拟机-从头配置Ubuntu18.04(包括anaconda,cuda,cudnn,pycharm,ros,vscode)

    最好先安装anaconda后cuda和cudnn&#xff0c;因为配置环境的时候可能conda会覆盖cuda的路径&#xff08;不确定这种说法对不对&#xff0c;这里只是给大家的建议&#xff09; 准备工作&#xff1a; 1.Ubuntu18.04&#xff0c;x86_64&#xff0c;amd64 虚拟机下载和虚拟机Ubu…...

    2024/4/26 17:18:03
  4. 算法——匹配算法

    匹配算法有很多种&#xff0c;常见的包括暴力匹配算法、KMP算法、Boyer-Moore算法、Rabin-Karp算法、正则表达式匹配算法等。每种算法都有其适用的场景和特点&#xff0c;可以根据具体需求选择合适的算法来进行匹配操作。 1.匈牙利匹配 匈牙利匹配&#xff0c;也称为二分图最…...

    2024/4/24 14:05:54
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/28 13:52:11
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/28 3:28:32
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/26 23:05:52
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/28 13:51:37
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/28 15:57:13
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/28 1:22:35
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/25 18:39:14
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/26 23:04:58
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/26 19:46:12
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/27 11:43:08
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/27 8:32:30
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; 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
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在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