课题学习(十四)----三轴加速度计+三轴陀螺仪传感器-ICM20602

news2025/1/13 8:04:15

   本篇博客对ICM20602芯片进行学习,目的是后续设计一个电路板,采集ICM20602的数据,通过这些数据对各种姿态解算的方法进行仿真学习。

一、 ICM20602介绍

1.1 初识芯片

   3轴陀螺仪:可编程全刻度范围(FSR)为±250 dps,±500 dps,±1000 dps和±2000 dps(dps:degrees per second,度/秒)。3轴加速度计:可编程全刻度范围(FSR)为±2g,±4g,±8g和±16g。这两个范围描述了传感器可以测量的最大范围,如果实际的角速度或者加速度超过这个范围,那么获得的数据就会失真或者不准确。
  下图是典型的电路连接图:
在这里插入图片描述
  下面是对16个引脚的介绍:
在这里插入图片描述
  此外,还需要注意三个轴的方向:
在这里插入图片描述
  该器件具有I2C和SPI串行接口,VDD工作范围为1.71V至3.45V,以及单独的数字IO电源,VDDIO工作范围为1.71V至3.45V。使用400 kHz的I2C或10 MHz的SPI与设备的所有寄存器进行通信。
  下面是陀螺仪的一些重要的数据:
在这里插入图片描述
   通过配置FS_SEL的值可以选择陀螺仪的测量范围,其中,LSB/(dps) 表示每秒度(degrees per second,dps)的最小位(Least Significant Bit)变化。这是用于描述陀螺仪的灵敏度或分辨率的一种方式。在数字传感器中,测量的物理量通常会被转换成数字信号,即由数字化的比特(bits)表示。最小有效位(LSB)是数字信号中最小的可分辨单位,它表示物理量的微小变化。对于陀螺仪而言,LSB/(dps) 描述了在角速度方面的分辨率。例如,如果一个陀螺仪的灵敏度为 0.1 LSB/(dps),那么它可以检测到每秒度的变化,并将这个变化表示为最小有效位的变化。 这个值越小,表示陀螺仪越能够检测到微小的角速度变化,具有更高的分辨率。分辨率对于一些应用,特别是需要高精度测量的领域,非常重要。
   下面是加速度计的一些重要的数据:在这里插入图片描述
  通过配置AFS_SEL的值可以选择加速度的测量范围。
   下面是芯片内部的框架图:
在这里插入图片描述

1.2 带有16位ADC和信号调理的三轴MEMS陀螺仪

   ICM-20602由三个独立的振动MEMS速率陀螺仪组成,分别检测X轴、Y轴和Z轴的旋转。当陀螺仪绕任一感测轴旋转时,会引起由电容拾音器检测到的振动。所得到的信号被放大、解调和滤波, 以产生与角速率成比例的电压。该电压使用单独的片上16位模数转换器(adc)对每个轴进行采样。陀螺仪传感器的满量程范围可以数字编程为±250,±500,±1000或±2000度每秒(dps)。ADC采样率可编程,从每秒8000个采样到每秒3.9个采样,用户可选择的低通滤波器可实现宽范围的截止频率。

1.3 带有16位ADC和信号调理的三轴MEMS加速度计

   ICM-20602的3轴加速度计沿某一特定轴方向的加速度在相应的证明质量上引起位移,电容式传感器对位移进行差分检测。当设备放置在平面上时,它将在X轴和y轴上测量0g,在z轴上测量+1g。加速度计的比例系数是在工厂校准的,与电源电压无关。每个传感器都有一个专用的sigma-delta ADC,用于提供数字输出。数字输出的满量程范围可调节为±2g,±4g,±8g或±16g。

1.4 SPI

   在以后的设计中,都会使用SPI来读取ICM20602的数据:
在这里插入图片描述

1.5 数字输出温度传感器

   采用片上温度传感器和ADC测量ICM-20602芯片温度。ADC的读数可以从FIFO或传感器数据寄存器读取。在读取这个温度之后,可以在后期研究温度对陀螺仪漂移中进行温度补偿。

1.6 工作模式

   下面是ICM20602各种模式下陀螺仪和加速度计的工作情况:
在这里插入图片描述

二、数字接口

在这里插入图片描述

2.1 SPI接口

   该芯片的SPI工作特点是数据先发送MSB,后发送LSB。
在这里插入图片描述
   SCLK在空闲时为高,在SCLK上升沿进行数据的采集SPC的最大频率为10MHz 5。SPI读写操作在16个或更多的时钟周期(两个或更多字节)完成。第一个字节包含SPI地址,接下来的字节包含SPI数据。第一个字节的第一位包含Read/Write位,表示Read(1)或Write(0)操作。下面的7位是要进行读写操作的寄存器地址或者数据。
在这里插入图片描述

2.2 寄存器

   下面详细看寄存器的说明:(说明一下,下文中寄存器xx表示该寄存器的16进制地址,如寄存器04,表示该寄存器地址为0x04;此外,由于三轴的寄存器是一样的,只针对其中某一轴的寄存器说明)

2.2.1 寄存器 04 – 陀螺仪低噪声到低功耗偏移位移和陀螺仪偏移温度补偿(TC)寄存器:

在这里插入图片描述
  XG_OFFS_LP[5:0]:将陀螺仪输出的偏移位移从低噪声模式切换到低功耗模式存储,以在软件代码中实现修正的功能。使用二进制的补码数字编码,每个最小有效位表示 0.125 度每秒,范围从 +3.875 度每秒到 -4 度每秒。
   XG_OFFS_TC_H[9:8]:X轴陀螺仪10位偏移的第9位和第8位(采用二进制的补码表示)。

2.2.2 寄存器05 -陀螺仪低噪声到低功率偏移移位和陀螺仪偏移温度补偿(tc)寄存器

在这里插入图片描述
  XG_OFFS_TC_H[7:0]:X轴陀螺仪10位偏移的第0到第7位(采用二进制的补码表示)。
  寄存器04和寄存器05对应X的轴相关的寄存器,寄存器07、08 对应Y轴的寄存器,同理,0A、0B对应Z轴的寄存器。

2.2.3 寄存器0D~0F:加速度计自检寄存器

在这里插入图片描述
  XA_ST_DATA[7:0]:该寄存器中的值表示在制造测试期间生成的自检输出。此数值用于与用户端执行的后续自检输出进行比较,以进行检查。

2.2.4 寄存器13、14:x 轴陀螺偏移调整寄存器:高字节 (13)、低字节 (14)

在这里插入图片描述
在这里插入图片描述
   X_OFFS_USR[15:8]:X陀螺仪16位偏移量的第15位到第8位(2的补码)。这个寄存器用于消除传感器输出的直流偏置。这个寄存器中的值在进入传感器寄存器之前被添加到陀螺仪传感器值中。
   X_OFFS_USR[7:0]:X陀螺仪16位偏移量的第7位到第0位(2的补码)。这个寄存器用于消除传感器输出的直流偏置。这个寄存器中的值在进入传感器寄存器之前被添加到陀螺仪传感器值中

2.2.5 寄存器19:采样率分频器

在这里插入图片描述
   SMPLRT_DIV[7:0]:该寄存器用于将内部采样率(参见寄存器CONFIG)分频,生成控制传感器数据输出速率和FIFO采样率的采样率。注意:该寄存器仅在FCHOICE_B寄存器位为00(不懂为什么数据手册写2’b00,是二进制吗?),并且(0 < DLPF_CFG < 7)时有效。这是传感器寄存器的更新速率:
S A M P L E R A T E = I N T E R N A L S A M P L E R A T E / ( 1 + S M P L R T D I V ) SAMPLERATE = INTERNALSAMPLERATE/(1+SMPLRTDIV) SAMPLERATE=INTERNALSAMPLERATE/(1+SMPLRTDIV),其中, I N T E R N A L S A M P L E R A T E = 1 k K z INTERNALSAMPLERATE=1kKz INTERNALSAMPLERATE=1kKz

2.2.6 寄存器1A:配置寄存器

在这里插入图片描述
  FIFO_MODE:当设置为1 时,当FIFO已满时,将不会向FIFO写入额外的写操作;当设置为0 时,当FIFO已满时,将向FIFO继续写入,替换旧的数据。
  EXT_SYNC_SET[2:0]:启用FSYNC引脚数据采样。 FSYNC将被锁存以捕捉 short strobes。如果FSYNC切换,锁存值切换,但不会再切换,直到新的锁存值被采样率频闪捕获。(说实话,没看明白,我也不用这个)
  DLPF_CFG[2:0]:对于要使用的DLPF, FCHOICE_B[1:0]是00。
  当FCHOICE_B [1:0] = 00时,DLPF_CFG配置DLPF。陀螺仪和温度传感器根据DLPF_CFG和FCHOICE_B的值进行滤波,如下表所示:
在这里插入图片描述

2.2.7 寄存器1B:陀螺仪配置

在这里插入图片描述
   [7]~[5]:三轴陀螺仪的自检
  FS_SEL[1:0]:陀螺满量程选择。
  FCHOICE_B[1:0]:用于绕过DLPF,如2.2.6节表格所示。

2.2.8 寄存器1C:加速度计配置

在这里插入图片描述
   [7]~[5]:三轴加速度的自检
  ACCEL_FS_SEL[1:0] :加速度满量程选择。

2.2.9 寄存器1D:加速度计配置2

在这里插入图片描述
  DEC2_CFG[1:0]:低功率加速度计模式的平均滤波器设置:
  ACCEL_FCHOICE_B :用于绕过DLPF,如下表所示。
  A_DLPF_CFG:加速度计低通滤波器设置,如下表所示:
在这里插入图片描述
   DLPF滤波器块的数据输出速率可以通过因子 1/(1+SMPLRT_DIV)进一步降低,其中 SMPLRT_DIV 是一个8位整数。以下是在低噪声模式下以这种方式配置的加速度计的一小部分可配置的输出数据速率(Hz):3.91, 7.81, 15.63, 31.25, 62.50, 125, 250, 500, 1K
   以下表格列出了在一些示例输出数据速率下,低功耗模式操作中可用的近似加速度计滤波器带宽。
   在低功耗模式下,加速度计以循环工作的方式运行。以下表格显示了一些加速度计低功耗模式的示例配置。
在这里插入图片描述

2.2.10 寄存器1E -陀螺仪低功耗模式配置

在这里插入图片描述
  GYRO_CYCLE: 当设置为1时,启用低功耗陀螺仪模式。默认设置为 0 。
  G_AVGCFG[2:0]:低功耗陀螺仪模式的平均滤波器配置。默认设置为000。
  若要在陀螺仪低功耗模式或6轴低功耗模式下工作,则应将GYRO_CYCLE设置为1。陀螺仪滤波器配置由G_AVGCFG[2:0]确定,设置平均滤波器配置。它与DLPF_CFG[2:0]无关。下表显示了陀螺仪低功耗模式的一些示例配置:
在这里插入图片描述

2.2.11 寄存器20:x轴加速度计唤醒运动阈值

在这里插入图片描述
   WOM_X_TH[7:0]:这个寄存器保存了x轴加速度计的运动中断唤醒的阈值。

2.2.12 寄存器23:FIFO使能

在这里插入图片描述
  GYRO_FIFO_EN:

1 - 将 TEMP_OUT_H、TEMP_OUT_L、GYRO_XOUT_H、GYRO_XOUT_L、GYRO_YOUT_H、GYRO_YOUT_L、GYRO_ZOUT_H和 GYRO_ZOUT_L 按照采样率写入FIFO;即使数据路径处于待机状态,如果启用,数据仍会被缓存。
0 - 该功能被禁用。

  ACCEL_FIFO_EN:

1 - 将ACCEL_XOUT_H、ACCEL_XOUT_L、ACCEL_YOUT_H、ACCEL_YOUT_L、ACCEL_ZOUT_H、ACCEL_ZOUT_L、TEMP_OUT_H 和 TEMP_OUT_L 按照采样率写入FIFO。
0 - 该功能被禁用。

2.2.12 寄存器36:FSYNC中断状态

在这里插入图片描述
  FSYNC中断状态:当FSYNC中断产生时,这个位自动设置为1。在读取寄存器后,该位清除为0。

2.2.13 寄存器37:INT/DRDY引脚、旁路使能配置

在这里插入图片描述
  INT_LEVEL :

1 - INT/DRDY引脚的逻辑电平低。
0 - INT/DRDY引脚的逻辑电平高。

  INT_OPEN :

1 - INT/DRDY引脚配置为开漏。
0 - INT/DRDY引脚配置为推挽式。

  LATCH_INT_EN :

1 - INT/DRDY引脚电平保持,直到中断状态被清除。
0 - INT/DRDY引脚指示中断脉冲的宽度为50us。

  INT_RD_CLEAR :

1 -如果有读操作,清除中断状态。
0 -只通过读取INT_STATUS寄存器来清除中断状态

   FSYNC_INT_LEVEL:

1 - FSYNC引脚作为中断的逻辑电平低。
0 - FSYNC引脚作为中断的逻辑电平高。

  FSYNC_INT_MODE_EN:

当这个位等于1时,FSYNC引脚将触发中断,当它转换到FSYNC_INT_LEVEL指定的电平时。
当这个位等于0时,FSYNC引脚被禁止引起中断

2.2.14 寄存器39:FIFO水印中断状态

在这里插入图片描述
   FIFO_WM_INT:FIFO水印中断状态。可读清除。

2.2.15 寄存器3A:中断状态

在这里插入图片描述
  WOM_X_INT、WOM_Y_INT、WOM_Z_INT:X/Y/Z轴加速度计WoM中断状态。可读清除。
  FIFO_OFLOW_INT :当FIFO缓冲区溢出产生时,该位自动设置为1。在读取寄存器后,该位清除为0。
  GDRIVE_INT :陀螺仪驱动系统准备中断
  DATA_RDY_INT :当产生数据就绪中断时,该位自动设置为1。在读取寄存器后,该位清除为0

2.2.16 寄存器3B/3C、3D/3E、3F/40:加速度计测量

在这里插入图片描述
  ACCEL_XOUT[15:8] :加速度计x轴数据的高字节。
  ACCEL_XOUT[7:0] :加速度计x轴数据的低字节。

2.2.17 寄存器41/41:温度测量值

在这里插入图片描述
  TEMP_OUT[15:8]:温度传感器输出低字节。
  TEMP_OUT[7:0]:温度传感器输出高字节。

2.2.18 寄存器43/44、45/46、47/48:陀螺仪测量值

在这里插入图片描述
  GYRO_XOUT[15:8] :X轴陀螺仪输出的高字节。
  GYRO_XOUT[7:0]:X轴陀螺仪输出的低字节。

2.2.19 寄存器50,51,52:陀螺仪自检寄存器

在这里插入图片描述
  XG_ST_DATA[7:0]:此寄存器中的值表示在制造测试期间生成的自检输出。此值将用于检查最终用户执行的后续自检输出。

2.2.20 寄存器60,61:Fifo水印阈值

在这里插入图片描述
  FIFO_WM_TH[9:8] :FIFO水印阈值。当阈值设置为“0”时,水印中断关闭。默认值为00000000。
  FIFO_WM_TH[7:0] :FIFO水印阈值。当阈值设置为“0”时,水印中断关闭。默认值为00000000。
  寄存器FIFO_WM_TH[9:0]设置FIFO水印阈值级别(0 ~ 1023)。在使用此功能之前,用户应确保寄存器0x1A的第7位设置为0。当FIFO计数大于或等于水印电平(FIFO_COUNT[15:0]≥FIFO_WM_TH[9:0]),且系统未处于FIFO读的过程中,触发中断。中断将设置FIFO水印中断状态寄存器字段FIFO_WM_INT = 1,如果配置为脉冲模式,INT引脚将发出脉冲,如果配置为锁存模式,则设置为活动电平。与其他中断不同,寄存器位FIFO_WM_INT不是读到清除。相反,无论何时读取FIFO_R_W寄存器,FIFO_WM_INT状态位都会被自动清除。同时,如果配置为锁存模式,INT引脚也将被清除。
  FIFO水印中断和INT引脚在FIFO的第一次读取(并且仅是第一次读取)时被清除。如果在FIFO读取结束时,FIFO计数等于或高于水印水平,中断状态位和INT引脚将再次设置。如果INT引脚配置为锁存操作,它将等待,直到主机完成读取设置为活动水平。

2.2.21 寄存器68:信号通路复位

在这里插入图片描述
  ACCEL_RST:复位加速数字信号路径。注意:传感器寄存器不清除。使用SIG_COND_RST清除传感器寄存器。
   TEMP_RST:复位温度数字信号路径。注意:传感器寄存器不清除。使用SIG_COND_RST清除传感器寄存器

2.2.22 寄存器69:加速度计智能控制在这里插入图片描述

  ACCEL_INTEL_EN :该位启用了运动唤醒检测逻辑。
  ACCEL_INTEL_MODE :

0 -不使用
1 -将当前采样值与前一个采样值进行比较

   OUTPUT_LIMIT :为了避免限制传感器输出小于0x7FFF,请将此位设置为1。这应该在每次ICM20602上电时进行。
  WOM_TH_MODE :

0 -设置WoM中断在所有已使能的加速度计阈值的或上。
1 -设置WoM中断在所有已使能的加速度计阈值的与上

2.2.23 寄存器6A:用户控制寄存器

在这里插入图片描述
  FIFO_EN :

1 -使能FIFO操作模式。
0 -从串行接口禁用FIFO访问。

  FIFO_RST :1 -复位FIFO模块。重置是异步的。该位在内部20mhz时钟的一个时钟周期后自动清除。
  SIG_COND_RST:1 -复位所有陀螺仪数字信号路径,加速数字信号路径,和临时数字信号路径。这个位也清除所有的传感器寄存器。

2.2.24 寄存器6B:电源管理寄存器1

在这里插入图片描述
  DEVICE_RESET : 1 -重置内部寄存器并恢复默认设置。一旦复位完成,位自动清除为0。
  SLEEP : 设置为1时,芯片进入休眠模式。
  CYCLE :当设置为1,并且SLEEP和STANDBY不设置为1时,芯片将在睡眠和以SMPLRT_DIV确定的速率采集单个加速度计样本之间循环。注意:当通过PWR_MGMT_2寄存器位禁用所有加速度计轴并启用周期时,芯片将以上述各自寄存器确定的速率唤醒,但不会采集任何采样值。
  GYRO_STANDBY : 当设置时,陀螺仪驱动和锁相环电路被启用,但感测路径被禁用。这是一个低功耗模式,允许快速启用陀螺仪。
  TEMP_DIS : 当设置为1时,该位禁用温度传感器。
  CLKSEL[2:0]:CLKSEL[2:0]的默认值是001。需要将CLKSEL[2:0]设置为001以实现完整的陀螺仪性能。在这里插入图片描述

2.2.25 寄存器6C:电源管理寄存器2

在这里插入图片描述
   STBY_XA :

1 - X加速度计关闭
0 - X加速度计打开
  STBY_XG :

1 - X陀螺仪关闭
0 - X陀螺仪打开

2.2.26 寄存器70:IIC接口

在这里插入图片描述
   I2C_IF_DIS :1 -禁用I2C从模块,并将串行接口置于SPI模式。

2.2.27 寄存器72/73:FIFO计数寄存器

在这里插入图片描述
  FIFO_COUNT[15:8] :高八位, count表示FIFO写入字节数。读取这个字节将锁存FIFO_COUNTH和FIFO_COUNTL的数据。
  FIFO_COUNT[7:0] :低八位, count表示FIFO写入字节数。注意:必须读FIFO_COUNTL来锁存FIFO_COUNTH和FIFO_COUNTL的新数据。

2.2.28 寄存器74:FIFO读写寄存器

在这里插入图片描述
  这个寄存器用于从FIFO缓冲区读取和写入数据。
  FIFO_DATA[7:0] :Read/Write命令为FIFO提供读或写操作。

2.2.29 寄存器75:WHO AM I

在这里插入图片描述
  此寄存器用于验证设备的身份。WHOAMI的内容是一个8位的设备ID。寄存器的缺省值是0x12。这与应用处理器在从I2C控制器上看到的设备的I2C地址不同。ICM-20602的I2C地址为0x68或0x69,具体取决于AD0引脚驱动的值。

2.2.29 寄存器77/78、7A/7B、7D/7E:加速度计偏移寄存器

在这里插入图片描述
  XA_OFFS[14:7] :X轴加速度计偏移消除的高位。
  XA_OFFS[6:0] :X轴加速度计偏移消除的低位。

2.3 后续安排

   后续会通过STM32来实现对ICM20602模块的数据读取,并设计上位机来保存数据。

三、往期回顾

课题学习(一)----静态测量
课题学习(二)----倾角和方位角的动态测量方法(基于磁场的测量系统)
课题学习(三)----倾角和方位角的动态测量方法(基于陀螺仪的测量系统)
课题学习(四)----四元数解法
课题学习(五)----阅读论文《抗差自适应滤波的导向钻具动态姿态测量方法》
课题学习(六)----安装误差校准、实验方法
课题学习(七)----粘滑运动的动态算法
课题学习(八)----卡尔曼滤波动态求解倾角、方位角
课题学习(九)----阅读《导向钻井工具姿态动态测量的自适应滤波方法》论文笔记
课题学习(十)----阅读《基于数据融合的近钻头井眼轨迹参数动态测量方法》论文笔记
课题学习(十一)----阅读《Attitude Determination with Magnetometers and Accelerometers to Use in Satellite》
课题学习(十二)----阅读《Extension of a Two-Step Calibration Methodology to Include Nonorthogonal Sensor Axes》
课题学习(十三)----阅读《Calibration of Strapdown Magnetometers in Magnetic Field Domain》论文笔记

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1281674.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Proteus仿真--基于ADC0832设计的两路电压表

本文介绍基于ADC0832实现的双路电压表采集设计&#xff08;完整仿真源文件及代码见文末链接&#xff09; 仿真图如下 采集芯片选用ADC0832&#xff0c;电压显示在LCD1602液晶显示屏上 仿真运行视频 Proteus仿真--基于ADC0832设计的两路电压表 附完整Proteus仿真资料代码资料…

自动驾驶学习笔记(十四)——感知算法

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo Beta宣讲和线下沙龙》免费报名—>传送门 文章目录 前言 感知算法 开发过程 测试和评价 前言…

【Linux】cp 命令使用

cp 命令 cp&#xff08;英文全拼&#xff1a;copy file&#xff09;命令主要用于复制文件或目录。 著者 由Torbjorn Granlund、David MacKenzie和Jim Meyering撰写。 语法 cp [选项]... [-T] 源文件 目标文件或&#xff1a;cp [选项]... 源文件... 目录或&#xff1a;cp [选…

【Docker】容器数据持久化及容器互联

一、Docker容器的数据管理 1.1、什么是数据卷 数据卷是经过特殊设计的目录&#xff0c;可以绕过联合文件系统&#xff08;UFS&#xff09;&#xff0c;为一个或者多个容器提供访问&#xff0c;数据卷设计的目的&#xff0c;在于数据的永久存储&#xff0c;它完全独立于容器的…

深入理解GMP模型

1、GMP模型的设计思想 1&#xff09;、GMP模型 GMP分别代表&#xff1a; G&#xff1a;goroutine&#xff0c;Go协程&#xff0c;是参与调度与执行的最小单位M&#xff1a;machine&#xff0c;系统级线程P&#xff1a;processor&#xff0c;包含了运行goroutine的资源&#…

canvas绘制单个圆和同心圆

代码实现&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdev…

CCKS2023-面向上市公司主营业务的实体链接评测-亚军方案

赛题分析 大赛地址 https://tianchi.aliyun.com/competition/entrance/532097/information 任务描述 本次任务主要针对上市公司的主营业务进行产品实体链接。需要获得主营业务中的产品实体&#xff0c;将该实体链接到产品数据库中的某一个标准产品实体。产品数据库将发布在竞赛…

HCIP —— 双点重发布 + 路由策略 实验

目录 实验拓扑&#xff1a; 实验要求&#xff1a; 实验配置&#xff1a; 1.配置IP地址 2.配置动态路由协议 —— RIP 、 OSPF R1 RIP R4 OSPF R2 配置RIP、OSPF 双向重发布 R3配置RIP、OSPF 双向重发布 3.查询路由表学习情况 4.使用路由策略控制选路 R2 R3 5.检…

[二分查找双指针]LeetCode881: 救生艇

作者推荐 [二分查找]LeetCode2040:两个有序数组的第 K 小乘积 本文涉及的基础知识点 二分查找算法合集 题目 给定数组 people 。people[i]表示第 i 个人的体重 &#xff0c;船的数量不限&#xff0c;每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人&#xff0…

TZOJ 1431 整数的尾数

答案&#xff1a; #include<stdio.h> int main() {int a 0, b 0, n 0;int i 0, j 0;while (scanf("%d %d", &a, &b) ! EOF){int arr[100] { 0 };int count 0;if (a 0 && b 0) //如果ab都等于0{break; //跳出循环&#xff0c;停止…

Leetcode刷题详解——乘积为正数的最长子数组长度

1. 题目链接&#xff1a;1567. 乘积为正数的最长子数组长度 2. 题目描述&#xff1a; 给你一个整数数组 nums &#xff0c;请你求出乘积为正数的最长子数组的长度。 一个数组的子数组是由原数组中零个或者更多个连续数字组成的数组。 请你返回乘积为正数的最长子数组长度。 示…

上门按摩APP小程序,抓住机遇创新服务新模式;

上门按摩APP小程序&#xff1a;抓住机遇&#xff0c;创新服务新模式&#xff1b; 随着现代人对生活质量要求的提高&#xff0c;上门按摩服务正成为一种新的、受欢迎的生活方式。通过APP小程序&#xff0c;用户可以轻松预约按摩服务&#xff0c;解决身体疲劳问题&#xff0c;享受…

重启路由器可以解决N多问题?

为什么重启始终是路由器问题的首要解决方案? 在日常的工作学习工作中,不起眼的路由器是一种相对简单的设备,但这仍然是我们谈论的计算机。 这种廉价的塑料外壳装有 CPU、随机存取存储器 (RAM)、只读存储器 (ROM) 和许多其他组件。 该硬件运行预装的软件(或固件)来管理连接…

简单3D姿态基线模型网络架构与验证【SIM】

在这篇文章中&#xff0c;我们将回顾 ICCV’17 上提出的 Simple 3D Pose Baseline &#xff0c;即用于 3d 人体姿势估计的简单而有效的基线&#xff0c;也称为 SIM。 NSDT工具推荐&#xff1a; Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在…

Ant Design Pro 框架设置API Token拦截器的功能

分享记录一个解决方法&#xff0c;希望对大家有帮助。 找到文件&#xff0c;然后定义一个方法。最后调用一下即可。 代码我也给你贴上了。 // 获取token 拦截方法 const setTokenRequest (config: any) > {const token 30|eh5GNXWRe5rO4XLjbbnqy132RABfiKqI338EoIhqc790a…

一个完整的手工构建的cuda动态链接库工程 03记

1&#xff0c; 源代码 仅仅是加入了模板函数和对应的 .cuh文件&#xff0c;当前的目录结构如下&#xff1a; icmm/gpu/add.cu #include <stdio.h> #include <cuda_runtime.h>#include "inc/add.cuh"// different name in this level for different type…

nodejs微信小程序+python+PHP健身房信息管理系统的设计与实现-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

Redis常见类型

常用类型String字符串类型Hash字典类型List列表类型Set集合类型ZSet有序集合类型 Java程序操作Redis代码操作Redis 常用类型 String字符串类型 使用方式&#xff1a; 使用场景&#xff1a; Hash字典类型 字典类型(Hash) 又被成为散列类型或者是哈希表类型&#xff0c;它…

【预测工具】不须编码的预测和数据可视化工具

有一天&#xff0c;我的同事问我&#xff0c;他应该如何做一个快速预测模型而不是Excel&#xff0c;并产生比线性回归或Excel图中的那些简单方程更好的结果。这是我的答案。 TableCurve 2D (Image by author) Sigmaplot很早以前就推出了这个软件。它已被广泛用于在数据中寻找最…

C#基础学习--命名空间和程序集

引用其他程序集 编译器接受源代码文件并生成一个名为程序集的输出文件。 在许多项目中&#xff0c;会想使用来自其他程序集的类或类型。这些程序集可能来自BCL或第三方供应商&#xff0c;或者自己创建的。这些程序集称为类库&#xff0c;而且它们的程序集文件的名称通常以dll…