基于STM32的MLX90614人体红外测温枪
文章目录
- 一、所需材料
- 二、mlx90614传感器介绍
- 三、MLX90614工作原理
- 四、IIC协议原理
- 1.写时序
- 2.读时序
- 3.通信过程
- 五、程序编写
- 1.起始信号与停止信号
- 2.发送一个字节
- 3.接收一个字节
- 4.数据校验
- 5.读取温度函数
- 6.得到最终温度值
- 六、CRC8校验原理
- 1.模2除法
- 2.具体步骤
- 3.实例1
- 4.示例2
- 5.读取温度函数
- 6.得到最终温度值
今天分享一个项目是做一个红外测温的。这个东西网上都有现成的资料和代码,做起来不难。关于红外测温用的芯片是mlx90614。很巧的是“芯知识课堂”已经将他们的红外测温枪方案全部开源了出来。如果大家想自己做一个红外测温枪可以去看看他们的资料,自己尝试做着玩一下。
那么在这里我就来写一写关于mlx90614红外测温的驱动代码和来说一说他的原理。主要是利用STM32F103C8T6单片机和mlx90614模块将测量的温度显示到0.96寸oled上面,如果你没有oled的话也可以用串口调试助手把温度信息打印出来。
一、所需材料
STM32F103C8T6最小系统板+mlx90614红外测温模块+0.96寸oled+一个jlink下载器。
二、mlx90614传感器介绍
MLX90614 系列模块是一组通用的红外测温模块。在出厂前该模块已进行校验及线性化,具有非接触、体积小、精度高,成本低等优点。被测目标温度和环境温度能通过单通道输出,并有两种输出接口,适合于汽车空调、室内暖气、家用电器、手持设备以及医疗设备应用等。测温方式可分为接触式和非接触式,接触式测温只能测量被测物体与测温传感器达到热平衡后的温度,所以响应时间长,且极易受环境温度的影响;而红外测温是根据被测物体的红外辐射能量来确定物体的温度,不与被测物体接触,具有影响动被测物体温度分布场,温度分辨率高、响应速度快、测温范围广、不受测温上限的限制、稳定性好等特点,所以我们选择mlx90614来作为红外测温模块。
单片机与mlx90614红外测温模块之间通信的方式是“类IIC”通信,意思就是通信方式跟IIC通信方式很像但又不是IIC,它有另外一个名字叫做SMBus。SMBus (System Management Bus)是 1995 年由 intel 公司提出的一种高效同步串行总线,SMBus 只有两根信号线:双向数据线和时钟信号线,容许 CPU 与各种外围接口器件以串行方式进行通信、交换信息,即可以提高传输速度也可以减小器件的资源占用,另外即使在没有SMBus 接口的单片机上也可利用软件进行模拟。
三、MLX90614工作原理
MLX90614有MLX81101红外热电堆传感器和包括含有稳压电路、低噪声放大器、A/D转换器、DSP单元、脉宽调制电路及逻辑控制电路的MLX90302信号处理芯片构成。
其工作原理为:红外热电堆传感器输出的温度信号经过内部低噪声、低失调的运算放大器(OPA)放大后经过A/D转换器(ADC)转换为17位数字信号通过可编程FIR及IIR低通数字滤波器(即DSP)处理后输出,输出结果存储在其内部RAM存储单元中。
MLX90614中有两个存储器,分别为EEPROM和RAM。
MLX90614中共有32个字长为16位的EEPROM存储单元,其地址为000H—01FH。
EEPROM中所有的寄存器都是可以通过SMBus进行读取,但只有部分寄存器是可以进行改写的(地址为0x00, 0x01, 0x02, 0x03, 0x04, 0x05*,0x0E, 0x0F, 0x09)。可改写部分如左表所示。
Tomax和Tomin是设定的测量物体温度上、下限,Ta范围即环境温度范围。
其测量温度上限计算方法为:Tomax=100×(To MAX+273.15),通过计算将结果写入000H;温度下限计算方法与上限计算方法一样,将计算结果写入001H。
MLX90614中总共有32个17位的RAM存储单元,用户不能通过RAM来写入数据,只能读取RAM中的部分存储单元读取16位存储数据。其采集的环境温度数据保存在地址006H存储单元中,采集的被测物体温度数据存储在007H存储单元中。因此运用存储在RAM地址中的数据,通过公式的计算,可以得到环境温度Ta及被测物体温度数据To。
Ta和To既可通过SMBus读取RAM单元(分辨率0.02°C ,固定范围)输出,也可通过PWM数字模式输出(10位分辨率,范围可配置)。由于变电所测温温度范围与MLX90614出厂时校准的温度范围符合,因此可直接采用SMBus方式进行温度数据Ta和To的读取输出。
Ta=RAM(006H)x0.02-273.15 To=RAM(007H)x0.02-273.15
四、IIC协议原理
IIC主从机之间通讯步骤如下:
1.主机发送一个起始信号通知各从机就位。
2.主机发送从机地址和读写标志位(写标志位为0,读标志位为1)
从机地址和读写标志位一共占用8位,地址占用高7位,读写标志位占用最低位,
3从机给主机回复响应(ACK)
4.如果是写模式,主机发送一字节数据等待从机响应,主机收到响应之后如果还有数据要发就继续发送第二段数据等待响应……直到发送完成;
如果是读模式,此时主机STM32读取从机发来的数据,并给从机响应,如果从机还有数据要发送(接着汇报第二段),主机接着读取然后发送响应给从机…
5.主机给从机一个停止信号
1.写时序
首先主机发送一个起始位,然后在发送从机的地址0x00和写标志位0,一共是8位。发送这8位之后,主机等待从机的响应,如过从机发送的是应答信号,主机就继续向从机发送一个字节的数据,同理再一次等待从机的响应,主机收到响应之后如果还有数据要发就继续发送第二段数据等待响应…直到发送完成;
写所用到的函数有:
1.void SMBus_StartBit(void);----主机发送一个起始位
2. u8 SMBus_ SendByte (u8 ack_nack)— 主机发送从机的地址和写标志位
3. SMBus_ReceiveBit(ack_nack);-- 从机发送的是应答信号
4. u8 SMBus_SendByte(u8 ack_nack)—主机发送从机的一个字节的数据
5.void SMBus_StopBit(void)-- ----主机发送一个停止位
2.读时序
首先主机发送一个起始位,然后在发送从机的地址0x00和读标志位1,一共是8位。发送这8位之后,主机等待从机的响应,如过从机发送的是应答信号,从机就向主机发送一个字节的数据。读时序就是主机从从机读数据,反过来就是从机向主机发送数据,同理,从机在发送完一个字节的数据之后也要向主机询问是否继续发送,如果主机让继续发送也就是发送了应答信号,那么从机就继续发送数据,每次发送完之后都要询问是否要继续发送,直到主机发送了非应答信号,从机才停止发送数据,最后主机再发送一个停止信号即可。
读所用到的函数有:
1.void SMBus_StartBit(void);—主机发送一个起始位
2. u8 SMBus_ SendByte (u8 ack_nack)—主机发送从机的地址和写标志位
3. SMBus_ReceiveBit(ack_nack);-- 从机发送的是应答信号
4. u8 SMBus_ReceiveByte (u8 ack_nack)–从机向主机发送的一个字节的数据
5.void SMBus_StopBit(void)-- ----主机发送一个停止位
3.通信过程
- 1.起始信号–在时钟线SCL高电平期间数据线SDA发生下降沿跳变产生起始信号
- 2.应答信号–在时钟线SCL为高电平期间数据线SDA保持低电平为应答信号
- 3.非应答信号–在时钟线SCL为高电平期间数据线SDA保持高电平为非应答信号
- 4.结束信号–在时钟线SCL高电平期间数据线SDA发生上升沿跳变产生停止信号
- 5.数据信号–在数据传输期间,时钟线 SCL 为高电平期间,如果数据线 SDA 为高电平则代表二进制1,同理,时钟线 SCL 为高电平期间,如果数据线 SDA 为低电平则代表二进制 0。
- 6.上面1号框是SDA 数据有效期,2号框是数据改变期。
五、程序编写
1.起始信号与停止信号
void SMBus_StartBit(void)
{SMBUS_SDA_H(); // 首先拉高数据线SMBus_Delay(5); // 延时几微妙SMBUS_SCK_H(); // 拉高时钟线SMBus_Delay(5); // 延时几微妙SMBUS_SDA_L(); // 拉低数据线SMBus_Delay(5); // 延时几微妙//在SCK=1时,检测到SDA由1到0表示通信开始(下降沿)SMBUS_SCK_L(); // 拉低时钟线SMBus_Delay(5); // 延时几微妙
}
void SMBus_StopBit(void)
{SMBUS_SCK_L(); // 拉低时钟线SMBus_Delay(5); // 延时几微妙SMBUS_SDA_L(); // 拉低数据线SMBus_Delay(5); // 延时几微妙SMBUS_SCK_H(); // 拉高时钟线SMBus_Delay(5); // 延时几微妙SMBUS_SDA_H(); // 拉高数据线
}
2.发送一个字节
u8 SMBus_SendByte(u8 Tx_buffer)
{u8 Bit_counter;u8 Ack_bit;u8 bit_out;for(Bit_counter=8; Bit_counter; Bit_counter--){if (Tx_buffer&0x80)//如果最高位为1{bit_out=1; // 把最高位置1}else //如果最高位为0{bit_out=0; // 把最高位置0}SMBus_SendBit(bit_out); // 把最高位发送出去Tx_buffer<<=1;// 左移一位把最高位移出去等待下一个最高位,循环8次,每次都发最高位,就可把一个字节发出去了}Ack_bit=SMBus_ReceiveBit(); // Get acknowledgment bitreturn Ack_bit;
}
发送一个字节也就是8个bit位,我们的做法就是循环8次,每次将最高位发送出去。如果最高位为1,我们将这一个字节Tx_buffer和0x80(10000000)进行"与运算",把最高位置为1。如果最高位为0,就把最高位置为0,再通过 SMBus_SendBit(bit_out); 把最高位发送出去,之后再通过Tx_buffer<<=1;左移一位把最高位移出去等待下一个最高位,循环8次,每次都发最高位,就可把一个字节发出去了。这里是SMBus发送一个字节,我们知道在从机发送完一个字节之后,主机要返回一个应答信号告诉从机是否继续发送下一个字节,所以这里我们 使用Ack_bit=SMBus_ReceiveBit();这条语句来告诉从机书否还要继续发送下一个字节,如果返回的是0就继续发送,如果返回的是1就停止发送。
3.接收一个字节
u8 SMBus_ReceiveByte(u8 ack_nack)
{u8 RX_buffer;u8 Bit_Counter;for(Bit_Counter=8; Bit_Counter; Bit_Counter--){if(SMBus_ReceiveBit())// Get a bit from the SDA line{RX_buffer <<= 1;// If the bit is HIGH save 1 in RX_bufferRX_buffer |=0x01;//如果Ack_bit=1,把收到应答信号1与0000 0001 进行或运算,确保为1}else{RX_buffer <<= 1;// If the bit is LOW save 0 in RX_bufferRX_buffer &=0xfe;//如果Ack_bit=1,把收到应答信号0与1111 1110 进行与运算,确保为0}}SMBus_SendBit(ack_nack);//把应答信号发出去,如果0,就进行下一次通信,如果为1,就拜拜了。return RX_buffer;
}
从SMBus上接收一个字节也就是8位,我们也是用一个for循环将8各一次接受过来。首先问我们通过if函数来判断SMBus_ReceiveBit()是否是收到了应答信号,如果收到了的应答信号也就是1,我们就将收到的数据左移1位RX_buffer <<= 1;如果左移一位之后空出的那一位数据位1然后就与0x01也就是0000 0001 进行"或运算",确保为1。如果左移一位之后空出的那一位数据位0然后就与0xfe也就是1111 1110 进行"或运算",确保为0。最后SMBus把应答信号发出去,如果0,就进行下一次通信,如果为1,就拜拜了,就不接受数据了。
4.数据校验
u8 PEC_Calculation(u8 pec[])
{u8 crc[6];//存放多项式u8 BitPosition=47;//存放所有数据最高位,6*8=48 最高位就是47位u8 shift;u8 i;u8 j;u8 temp;do{ //Load pattern value 0x00 00 00 00 01 07crc[5]=0;crc[4]=0;crc[3]=0;crc[2]=0;crc[1]=0x01;crc[0]=0x07;BitPosition=47;shift=0;i=5;j=0;while((pec[i]&(0x80>>j))==0 && i>0){BitPosition--;if(j<7){j++;}else{j=0x00;i--;}}shift=BitPosition-8;while(shift){for(i=5; i<0xFF; i--){if((crc[i-1]&0x80) && (i>0)){temp=1;}else{temp=0;}crc[i]<<=1;crc[i]+=temp;}shift--;}for(i=0; i<=5; i++){pec[i] ^=crc[i];}}while(BitPosition>8);return pec[0];
}
这个数据校验是很重要的,目的就是来判断检测你采集的数据是否是是正确的。
也就是我们程序会把PEC的数据通过SA_W、Command、SA_R把LSByte、MSByte读出来。然后我们自己再写一个校验的函数来判断读到的PEC数据是否正确,如果正确了才能进行下一步的判断,如果不正确的话就继续读,直到正确为止。如何才能知道自己读到的数据是否正确呢?这就需要自己单独建立一个C工程,把这个函数u8 PEC_Calculation(u8 pec[])放到里面运行一遍,看看自己输入的数据时候跟自己要得到数据数据是否一样就可以了。也就是把0x00、0x3a、0xd2、0xb5、0x07、0xb4放到这个函数运行,最终返回出来的数据是否是0x30就可以了,如果是就说明数据校验正确,如果不是就需要该函数,至于为啥返回的是0x30请看上面的时序表。
5.读取温度函数
u16 SMBus_ReadMemory(u8 slaveAddress, u8 command)
{u16 data;u8 Pec; u8 DataL=0;u8 DataH=0; u8 arr[6];u8 PecReg;u8 ErrorCounter;ErrorCounter=0x00;// Initialising of ErrorCounterslaveAddress <<= 1; //2-7位表示从机地址 从机地址左移一位,把读写位空出来 do{
repeat:SMBus_StopBit();--ErrorCounter; if(!ErrorCounter) //ErrorCounter=0?{break; //如果为0就跳出do-while{}循环}SMBus_StartBit();if(SMBus_SendByte(slaveAddress))//发送从机地址最低位Wr=0表示接下来写命令{goto repeat; }if(SMBus_SendByte(command))//发送命令{goto repeat;}SMBus_StartBit();if(SMBus_SendByte(slaveAddress+1)) //发送从机地址+1最低位Rd=1表示接下来读数据{goto repeat; }DataL = SMBus_ReceiveByte(ACK); //读低位数据保存到DataL DataH = SMBus_ReceiveByte(ACK); //读高位数据保存到DataHPec = SMBus_ReceiveByte(NACK); //读校验数据保存到Pec SMBus_StopBit();arr[5] = slaveAddress; arr[4] = command;arr[3] = slaveAddress+1;arr[2] = DataL; arr[1] = DataH; arr[0] = 0; PecReg=PEC_Calculation(arr);//Calculate CRC 数据校验}while(PecReg != Pec);data = (DataH<<8) | DataL;return data;
}
这个函数的输入参数就IIC设备的从机地址和command寄存器地址。首先从机地址左移一位,把读写位空出来,因为不知道最开始是啥状态,我们就需要发送一个停止信号,因为ErrorCounter=0x00;那么进行"–"操作之后就不等于0,就进行下面的操作。接下来就发送起始信号,发送从机设备地址,如果发送的从机地址正确,就接着发送操作从机地址的command这个地址,因为这里报存着温度数据。然后重新发起一个起始信号,开始读数据,把温度数据的低位DataL高位DataH 和PEC数据读出来,再进行PEC数据校验,判断读到的PEC数据和校验得到的PEC数据是否相等,相等的话就跳出循环,通过将高位数据左移8位再与低8位进行按位或就得到了最终的数据data。
6.得到最终温度值
float SMBus_ReadTemp(void)
{ float temp;temp = SMBus_ReadMemory(0x00, 0x07)*0.02-273.15;return temp;
}
通过数据手册我们知道将最终读取的数据*0.02-273.15就会得到最终的温度实际值,通过串口打印或者oled显示就可以得到传感器读取的温度了。
六、CRC8校验原理
1.模2除法
模2除法与算术除法类似,但每一位除的结果不影响其它位,即不向上一位借位,所以实际上就是异或。在循环冗余校验码(CRC)的计算中有应用到模2除法。CRC校验中有两个关键点,一是预先确定一个发送端和接收端都用来作为除数的二进制比特串(或多项式),可以随机选择,也可以使用国际标准,但是最高位和最低位必须为1;二是把原始帧与上面计算出的除数进行模2除法运算,计算出CRC码。
2.具体步骤
- 选择合适的多项式,确定除数。
- 看选定多项式的二进制位数,然后将要发送的数据上面加上这个位数1位的0,然后用得到的数据以模2除法的方式除上面确定的除数,得到的余数就是该数的CRC校验码。注意,余数的位数一定只比除数位数少一位,也就是CRC校验码位数比除数位数少一位,如果前面位是0也不能省略。
3.实例1
现假设我们使用的多项式为:G(X) =X^ 8 + X^ 2+X^ 1+1,要求出0x1A的CRC8校验码。下面是具体的计算过程:
1、 将多项式转化为二进制序列,由G(X) = X^ 8 + X^ 2+X^ 1+1可知二进制一种有9位,第8位、第2位、第1位和第0位分别为1,则序列为100000111。
2、原来要计算的数据为1 1010,多项式的最高次为8,则在数据的后面加上8位0,数据变为110100000 0000,然后使用模2除法除以除数100000111,最终得到的除不尽的余数,变为我们要求的CRC8结果。
3、最后除不尽的余数为0x46,所以0x1A按多项式G(X) = X8+X2+X+1计算得到的CRC8码为0x46。
4.示例2
也就是求0xb4 0x07 0xb5 0xd2 0x3a 的CRC8校验码是否是0x30
- 将多项式转化为二进制序列,由G(X) = X8+X2+X^1+1可知二进制一种有9位,第8位、第2位、第1位和第0位分别为1,则序列为100000111。
- 原来要计算的数据为b4 07 b5 d2 3a转换为2进制就是
1011010000000111101101011101001000111010
,多项式的最高次为8,则在数据的后面加上8位0,数据变为
101101000000011110110101110100100011101000000000,然后使用模2除法除以除数100000111,最终得到的除不尽的余数,变为我们要求的CRC8结果。
5.读取温度函数
u16 SMBus_ReadMemory(u8 slaveAddress, u8 command)
{u16 data;u8 Pec; u8 DataL=0;u8 DataH=0; u8 arr[6];u8 PecReg;u8 ErrorCounter;ErrorCounter=0x00;// Initialising of ErrorCounterslaveAddress <<= 1; //2-7位表示从机地址 从机地址左移一位,把读写位空出来 do{
repeat:SMBus_StopBit();--ErrorCounter; if(!ErrorCounter) //ErrorCounter=0?{break; //如果为0就跳出do-while{}循环}SMBus_StartBit();if(SMBus_SendByte(slaveAddress))//发送从机地址最低位Wr=0表示接下来写命令{goto repeat; }if(SMBus_SendByte(command))//发送命令{goto repeat;}SMBus_StartBit();if(SMBus_SendByte(slaveAddress+1)) //发送从机地址+1最低位Rd=1表示接下来读数据{goto repeat; }DataL = SMBus_ReceiveByte(ACK); //读低位数据保存到DataL DataH = SMBus_ReceiveByte(ACK); //读高位数据保存到DataHPec = SMBus_ReceiveByte(NACK); //读校验数据保存到Pec SMBus_StopBit();arr[5] = slaveAddress; arr[4] = command;arr[3] = slaveAddress+1;arr[2] = DataL; arr[1] = DataH; arr[0] = 0; PecReg=PEC_Calculation(arr);//Calculate CRC 数据校验}while(PecReg != Pec);data = (DataH<<8) | DataL;return data;
}
这个函数的输入参数就IIC设备的从机地址和command寄存器地址。首先从机地址左移一位,把读写位空出来,因为不知道最开始是啥状态,我们就需要发送一个停止信号,因为ErrorCounter=0x00;那么进行"–"操作之后就不等于0,就进行下面的操作。接下来就发送起始信号,发送从机设备地址,如果发送的从机地址正确,就接着发送操作从机地址的command这个地址,因为这里报存着温度数据。然后重新发起一个起始信号,开始读数据,把温度数据的低位DataL高位DataH 和PEC数据读出来,再进行PEC数据校验,判断读到的PEC数据和校验得到的PEC数据是否相等,相等的话就跳出循环,通过将高位数据左移8位再与低8位进行按位或就得到了最终的数据data。
6.得到最终温度值
float SMBus_ReadTemp(void)
{ float temp;temp = SMBus_ReadMemory(0x00, 0x07)*0.02-273.15;return temp;
}
通过数据手册我们知道将【最终读取的数据*0.02-273.15】就会得到最终的温度实际值,通过串口打印或者oled显示就可以得到传感器读取的温度了。
后台回复:【红外测温】,即可免费获取红外测温程序源码。
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- SpringMVC Post请求中文乱码问题
SpringMVC Post请求中文乱码问题 jsp代码如下: <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body> <form action="${pageContex…...
2024/4/28 14:41:21 - Python 之if-elif-else实际案例
if-elif-else实际案例 一、判断闰年和每月天数 需求: 1、输入一个年份判断该年是闰年还是平年 2、输入一个月份判断该月有几天。 代码: #判断输入的年份是平年还是闰年 #判断输入的月份有几天 year = eval(input("请输入年份:")) month = eval(input("请输入…...
2024/4/28 0:19:24 - [US Baby Names]Error:‘year‘ is both an index level and a column label, which is ambiguous.
ERROR: [pivot table] : some is both an index and a column label.SOLVE:pandas.Series.dropleveltotal_births_advance = top_1000_plot.pivot_table(births, index=year, columns=name, aggfunc=sum)[year]同时是index和column,出现矛盾。打印top_1000,长这样:复制副本…...
2024/4/28 8:43:51 - 常用的HTML标签
HTML常用标签 HTML:HyperText Markup language(超文本标记语言)是一种用于创建网页的标准标记语言。 1、标签类型 主要的吧标签类型大致可以分为两类 1)自闭合类型:一般由一个</>构成 <tag attr=”val” attr=”val2”.../>2)对标签: 一般由<></>构…...
2024/4/28 1:32:29 - 次序选择问题 java代码完整实现 分治法
什么是次序选择: 就是需要找出给定序列中第k小元素(其中k大1小于n)。 比如当k=3时,我们需要找出该序列中第三小元素。 分治法解决次序选择问题: 我们可以借用随机主元的快速排序的思维去解决该问题(点击查看本人另一篇博文随机化快速排序:随机化快速排序),与快速排序不…...
2024/4/20 13:14:35 - Java int转字符串
String.valueOf(int); Integer.toString(int); int+""...
2024/4/28 7:06:03 - mysql:Establishing SSL connection without server‘s identity verification is not recommended.
sql语句正确,但是报警告不出结果连接语句后面加上useSSL=false完整的url是jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=utf-8&useSSL=false...
2024/4/28 7:21:40 - markdown-typora入门
一.markdown的简介 二.标题markdown的标题语法: # 【空格】 (一级标题) ## 【空格】 (二级标题) ### 【空格】(三级标题) ……效果: 一级标题 二级标题 三级标题快捷键:ctrl+1 :一级标题 ctrl+2 :一级标题 ctrl+3 :一级标题 ……ctrl++:标号加 ctrl+-:标号减三.段落…...
2024/4/28 17:46:32 - 编译hi3516a SDK遇到的问题
【版权申明】转载请附上出处链接编译hi3516a SDK遇到的问题 serve_image.c:32:18: error: storage size of ‘hints’ isn’t known 原因在于ubuntu操作系统版本太高,而SDK使用的mtd-utils版本太低导致的。 修改sdk版本下的mtd-utils-1.5.0为mtd-utils-2.0.0即可,需要修改一下…...
2024/4/27 23:35:14 - 中南大学慕课科学计算与MATLAB语言第四专题作业
非官方答案 自己写的,开始觉得题目有误,后续尝试得到的答案 创作不易,转载请声明 1.绘制下列曲线: 要求分别用plot和fplot函数实现,并且在子图中绘制两个图形,两个子图水平排列 x=-1:0.01:1; a=x.*x; b=5.*x.*x.*x; subplot(1,2,1); plot(a,b); subplot(1,2,2); fplot(@(t)t…...
2024/4/18 6:27:55 - 说说如何搭建与使用 Nacos 配置中心
1 Nacos 服务(Server) 从 Nacos 官网 下载 nacos-server-$version.zip 包,解压到指定目录。 Windows 中,打开解压目录下的 \bin\startup.cmd 启动服务。Nacos 服务占用内存近 2G,对资源要求很高。 启动成功后,Nacos 服务就运行起来了。在浏览器中输入 http://127.0.0.1:8…...
2024/4/28 0:01:07 - 每个月程序员总有那么几天迷茫
每个月程序员总有那么几天迷茫傻乎乎地啥也不想干,没动力,年龄大了也憔悴那怎么办推荐看人物传记多看看 近代史上的,比如 曾国藩,李鸿章,张之洞,等等多看看他们如何处理复杂的棘手事情,再看看自己手中的那些项目杂事,算个球啊...
2024/4/4 20:04:56 - Linux系统环境下安装Node环境
准备Node安装包 前往node.js官网下载Node安装包,我这⾥下载的是node-v12.16.3-linux-x64.tar.xz 安装包,并通过FTP软件将其上传放在了 root ⽬录下创建目录并解压 1、在/usr/local/下创建node⽂件夹并进⼊ cd /usr/local/ mkdir node cd node2、将Node的安装包解压到/usr/loc…...
2024/4/16 1:34:48 - 关于子网划分的理解
子网划分的目的: 1、限定广播的传播(广播风暴),你也不想线路被垃圾流量占据吧; 2、易于排除故障,小区域网络故障总是比整个局域网瘫痪容易处理; 3、增加安全性,对网段隔离,可以限制病毒的传播; 4、节约IP网络资源(举例说明,假设子网是255.255.255.0的话 也就是说这…...
2024/4/28 0:06:59 - forEach,for..in,for..of,Object.keys(),Object.values(),Object.assign(),Object.create()
写在前面 JS对象的可枚举属性和不可枚举属性 见此博客1、forEach()这个是遍历数组的方法,无返回值,不可以遍历对象 语法:array.forEach(function(currentValue, index, arr), thisValue) 第一个是value,第二个是index,第三个是数组体 缺点:不能同时遍历多个集合,在遍历的…...
2024/4/27 21:48:40 - Linux Command: find, locate, whereis区别
find:基于实时搜索整个文件系统定位 -更早的命令,更为通用; -功能更丰富,可根据不同情况搜索(eg. age, size, owner, type, permission…) -实时搜索,结果更准确 locate:基于定期更新的数据库 -运行速度更快但结果没find准确....
2024/4/28 19:45:09 - 程序员面试金典(LeetCode)-面试题05.07(配对交换)
配对交换 题目描述算法思想 这道题,最初的想法是,直接将数变为二进制字符,然后直接对其字符串操作,进行奇偶的交换(这里如果字符串的为奇数,则要在开始补一个零) 第二种位运算的思路,就是利用掩码,分别将数的奇数位、偶数位,提出来,然后奇数位右移,偶数位左移,最后…...
2024/4/28 16:25:28 - maven install 命令提示Missing argument for option: f问题
当前项目是利用Maven管理的。今天需要将一个第三方Jar文件安装到本地仓库。这事本来挺简单,以前也不是没安装过,可是偏偏就遇到了问题。IDE用的是sts4,内置了Maven模块。用菜单Run As内的Maven Build... 在Goals内,从网上复制了maven 的Install命令,在这里,不需以mvn开始…...
2024/4/28 4:33:44 - 解决Redis在高并发时,缓存穿透
1.直接在方法上加synchronizedpublic synchronized User getUserById(Integer id) {// 设置redis的key按照String进行序列化redisTemplate.setKeySerializer(new StringRedisSerializer());// 查询redis缓存中是否存有数据User user = (User) redisTemplate.opsForValue().get(…...
2024/4/16 16:20:25 - Qt cmake opencv编译说明
opencv编译说明介绍Opencv 编译前目录结构Opencv 编译后目录结构编译完成编译过程注意事项Cmake进行configure错误:No such file or directory 错误关于Python 介绍 本人使用的是Qt5.12.1+opencv-4.3.0+cmake-3.18.0 。 qt的版本与opencv的版本配置(建议qt用高版本,可以向下…...
2024/4/23 17:37:50
最新文章
- PDCA循环:持续精进的工具
文章目录 一、什么是PDCA二、PDCA的应用场景三、PDCA在信息系统项目管理中的应用 一、什么是PDCA PDCA循环是由美国质量管理专家沃特阿曼德休哈特(Walter A. Shewhart)在20世纪30年代提出的,最初用于制造业的质量管理。休哈特博士在构想PDCA…...
2024/4/28 21:55:30 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - 布隆过滤器是如何避免缓存穿透的?
布隆过滤器(Bloom filter)是一种空间效率极高的概率型数据结构,用于判断一个元素是否在一个集合中。它的原理是当一个元素被加入集合时,通过几个不同的Hash函数将元素映射成一个位数组中的多个位置,再次查询时如果位数…...
2024/4/13 9:55:48 - 产品推荐 | 中科亿海微推出亿迅®A8000金融FPGA加速卡
01、产品概述 亿迅A8000金融加速卡,是中科亿海微联合金融证券领域的战略合作伙伴北京睿智融科,将可编程逻辑芯片与金融行业深度结合,通过可编程逻辑芯片对交易行情加速解码,实现低至纳秒级的解码引擎,端到端的处理时延…...
2024/4/26 12:36:49 - Verilog基础【二】
3.1 Verilog 连续赋值 关键词:assign, 全加器 连续赋值语句是 Verilog 数据流建模的基本语句,用于对 wire 型变量进行赋值。: assign LHS_target RHS_expression ;LHS(left hand side)…...
2024/4/24 20:09:29 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/4/28 13:52:11 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/4/28 3:28:32 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/26 23:05:52 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/4/28 13:51:37 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/27 17:58:04 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/27 14:22:49 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/28 1:28:33 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/28 15:57:13 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/27 17:59:30 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/4/25 18:39:16 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/28 1:34:08 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/28 1:22:35 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/25 18:39:14 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/4/26 23:04:58 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/27 23:24:42 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/28 5:48:52 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/26 19:46:12 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/4/27 11:43:08 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/27 8:32:30 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下: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