嵌入式学习笔记-杂七杂八

文章目录

    • 连续波光纤耦合激光器
      • 工作原理
      • 主要特点
      • 应用领域
      • 设计考虑因素
    • 数值孔径(Numerical Aperture,简称NA)
      • 数值孔径的定义
      • 数值孔径的意义
      • 数值孔径的计算示例
      • 数值孔径与光纤
    • 四象限探测器检测目标方法
      • 四象限划分
      • 检测目标的步骤
        • 1. 数据采集
        • 2. 坐标转换
        • 3. 四象限判断
        • 4. 目标位置识别
        • 5. 目标跟踪与响应
        • 代码示例(基于传感器数据)
    • Wiener 滤波
      • 维纳滤波的基本原理
        • 1. 目标函数:最小化均方误差(MSE)
        • 2. 频域表示
      • 图像去噪
      • 维纳滤波的优势与限制
      • 优势:
      • 限制:
      • Wiener 滤波的实现
      • 代码说明:
    • LM2596S DC-DC 降压电源
      • LM2596S 的特点:
      • LM2596S模块的元器件

连续波光纤耦合激光器

连续波光纤耦合激光器(CW Fiber-coupled Laser)是一种利用光纤传输激光输出的激光器。其特点是输出的激光为连续波(Continuous Wave,CW)形式,即激光的输出功率是稳定和持续的,没有明显的脉冲特征。这种激光器通常用于精密加工、传感、医疗等多个领域,具有高稳定性和良好的光束质量。

工作原理

连续波光纤耦合激光器的基本原理是通过光纤将激光从激光源传输到目标位置。光纤耦合技术使得激光器具有更高的输出效率、光束质量和方向性。其工作过程大致可以分为以下几个步骤:

  1. 激光源:激光器本身通常是半导体激光器、固体激光器或气体激光器等。激光源通过电流或光源激发介质,使其发射出特定波长的激光。

  2. 光纤耦合:激光通过耦合系统(例如透镜、反射镜等)导入光纤中。耦合的过程需要确保光纤能够有效地接收到激光源的输出,并将光传输到输出端。

  3. 光纤传输:光纤作为光的传输通道,传输过程中几乎没有能量损失,因此能够保证激光输出的稳定性。通过光纤,激光可以被精确地传输到需要的位置。

  4. 输出激光:最终,激光通过光纤输出端口传递到目标区域。由于光纤的特殊结构,激光的输出通常具有较小的光斑和较高的光束质量。

主要特点

  1. 高稳定性:连续波光纤耦合激光器能够提供稳定的输出功率,适合精密控制和长时间运行。

  2. 良好的光束质量:光纤传输过程中能够保持较高的光束质量,适合对光束质量有要求的应用。

  3. 紧凑性:光纤耦合激光器的结构相对紧凑,易于集成进各种设备中。

  4. 高效率:通过光纤传输,激光损耗较低,系统整体效率较高。

  5. 较强的抗干扰能力:光纤本身对电磁干扰不敏感,因此能够保证在复杂环境下正常工作。

应用领域

  1. 精密加工:在材料加工、激光切割、激光焊接等领域,连续波光纤耦合激光器可以提供高精度、高功率的激光输出,广泛应用于金属、陶瓷等材料的加工。

  2. 激光扫描与传感:在激光扫描、三维成像、激光雷达(LiDAR)等应用中,光纤耦合激光器提供稳定的激光输出,用于高精度测量。

  3. 医疗领域:在激光治疗、激光手术等医疗领域,连续波激光器被用于组织切割、消融等操作,具有较高的精准性和可控性。

  4. 通信与研究:在光通信领域,光纤耦合激光器被广泛用于信号传输和实验研究。

设计考虑因素

在设计连续波光纤耦合激光器时,需要考虑以下几个因素:

  1. 光纤匹配:选择适合的光纤和耦合方式,确保激光器的输出能够有效耦合入光纤。

  2. 功率控制:设计适当的驱动电路和温控系统,确保激光器输出的功率稳定且可调。

  3. 热管理:激光器工作时会产生大量热量,良好的热管理系统能够防止激光器过热,确保长时间稳定运行。

  4. 波长选择:根据应用需求选择适当的激光波长,光纤的传输性能和耦合效率也会随波长的不同而有所变化。

  5. 光束质量:确保激光器的输出光束具有良好的质量,以适应精密加工或高精度测量的需求。

数值孔径(Numerical Aperture,简称NA)

数值孔径(NA)是描述光学系统,特别是显微镜、光纤等光学设备的光学性能的重要参数。它表征了光学系统能够接收或发射光的能力,即系统的光学聚焦能力与分辨率的关系。

数值孔径的定义

数值孔径是由光学系统的物镜(或光纤的核心)与透镜的光学特性共同决定的,它是一个无单位的数值,定义如下:

N A = n sin ⁡ θ NA = n \sin \theta NA=nsinθ

其中:

  • n n n 是介质的折射率,通常是物镜与物体之间的介质(如空气、水、油等)的折射率。
  • θ \theta θ 是物镜半角(或入射光束的最大半角),即光线从物镜的中心轴到边缘所形成的角度。

数值孔径的意义

  1. 光学系统的聚焦能力:数值孔径越大,光学系统的聚焦能力越强,能够集中更多的光线,形成更小的焦点。因此,NA越大,系统的分辨率通常也会更高。

  2. 光纤的传输能力:在光纤通信中,NA反映了光纤核心能够接受的光线角度范围。较大的NA表示光纤可以接受更多不同角度的光线,传输效率和带宽也更高。

  3. 分辨率与物镜性能:数值孔径与分辨率相关。分辨率 R R R 与NA之间的关系为:

    R = λ 2 × N A R = \frac{\lambda}{2 \times NA} R=2×NAλ

    其中, λ \lambda λ 是使用的光的波长。可以看到,数值孔径越大,分辨率越高。

数值孔径的计算示例

假设我们有一个在空气中工作的物镜,折射率 n = 1.0 n = 1.0 n=1.0,入射角度为 3 0 ∘ 30^\circ 30,那么数值孔径NA为:

N A = 1.0 × sin ⁡ ( 3 0 ∘ ) = 1.0 × 0.5 = 0.5 NA = 1.0 \times \sin(30^\circ) = 1.0 \times 0.5 = 0.5 NA=1.0×sin(30)=1.0×0.5=0.5

若这个系统使用的是水作为介质,其折射率通常为 n = 1.33 n = 1.33 n=1.33,那么:

N A = 1.33 × sin ⁡ ( 3 0 ∘ ) = 1.33 × 0.5 = 0.665 NA = 1.33 \times \sin(30^\circ) = 1.33 \times 0.5 = 0.665 NA=1.33×sin(30)=1.33×0.5=0.665

可以看出,水介质下的数值孔径比空气中的数值孔径更大,表明水介质下的物镜能够聚焦更多的光线,从而提供更高的分辨率。

数值孔径与光纤

在光纤中,数值孔径的作用是决定光纤的接受角度(或模式)的能力。光纤的NA越大,可以接收到更多不同方向的光线,从而能够支持更多的传播模式,这对于多模光纤尤其重要。

对于光纤,数值孔径也由其核心和包层的折射率差异决定,通常使用如下公式计算:

N A = n 1 2 − n 2 2 NA = \sqrt{n_1^2 - n_2^2} NA=n12n22

其中:

  • n 1 n_1 n1 是光纤核心的折射率。
  • n 2 n_2 n2 是光纤包层的折射率。

四象限探测器检测目标方法

四象限探测器(Quadrant Detector),又是一个唬人的名词,本质上就是看物体运动到从哪个象限到哪个象限,判断是哪个方向。

四象限探测器通过将检测区域划分为四个象限(上下左右四个部分),根据目标的分布位置来判断目标是否存在以及其大致位置。

四象限划分

我们通常将平面坐标系的原点 ( 0 , 0 ) (0, 0) (0,0) 放置在检测区域的中心,基于此将区域划分为四个象限,分别为:

  • 第一象限:右上, x > 0 , y > 0 x > 0, y > 0 x>0,y>0
  • 第二象限:左上, x < 0 , y > 0 x < 0, y > 0 x<0,y>0
  • 第三象限:左下, x < 0 , y < 0 x < 0, y < 0 x<0,y<0
  • 第四象限:右下, x > 0 , y < 0 x > 0, y < 0 x>0,y<0

通过这种划分,探测器可以分别检测目标是否处于某个象限,并根据这些信息来判断目标的方位和移动方向。

检测目标的步骤

1. 数据采集

首先,通过传感器(如红外传感器、激光雷达、相机等)采集目标的位置信息。这些传感器可以通过测量与目标之间的距离、角度或者其他相关特征来获取目标的位置数据。

  • 如果使用图像处理方法,可以通过摄像头获取目标的图像信息。
  • 如果使用激光雷达,可以通过点云数据或反射信号获得目标在空间中的坐标。
2. 坐标转换

将目标的坐标数据转换为平面坐标系中的 x , y x, y x,y 坐标。对于激光雷达或其他传感器采集的数据,可能需要根据传感器的角度和距离计算出目标的实际位置。

例如,假设有一个距离 d d d 和角度 θ \theta θ,则可以通过极坐标转直角坐标来得到目标的 x , y x, y x,y 坐标:

x = d ⋅ cos ⁡ ( θ ) x = d \cdot \cos(\theta) x=dcos(θ)
y = d ⋅ sin ⁡ ( θ ) y = d \cdot \sin(\theta) y=dsin(θ)

3. 四象限判断

根据得到的 x , y x, y x,y 坐标,判断目标所在的象限:

  • 第一象限 x > 0 , y > 0 x > 0, y > 0 x>0,y>0
  • 第二象限 x < 0 , y > 0 x < 0, y > 0 x<0,y>0
  • 第三象限 x < 0 , y < 0 x < 0, y < 0 x<0,y<0
  • 第四象限 x > 0 , y < 0 x > 0, y < 0 x>0,y<0

如果目标的坐标满足某个象限的条件,说明目标位于该象限内。

4. 目标位置识别

通过四象限的划分,可以判断目标的相对位置。如果目标穿越某一象限的边界,探测器可以进一步识别目标的移动方向。

例如,若目标从第一象限移动到第二象限,则说明目标向左移动。如果目标从第一象限进入第四象限,则说明目标向下移动。

5. 目标跟踪与响应

若探测器用于实时跟踪目标,可以通过连续采集和计算目标的位置变化来持续判断其位置和方向,进行相应的操作。对于一些自动化系统,可以根据目标所在的象限来做出相应的决策,如改变机器人方向、触发某些操作等。

代码示例(基于传感器数据)

假设我们已经获取了目标的 x x x y y y 坐标,以下是一个简单的C语言代码示例来判断目标是否位于四象限中的某一象限:

#include <stdio.h>// 判断目标所在的象限
void detectQuadrant(float x, float y) {if (x > 0 && y > 0) {printf("目标在第一象限\n");} else if (x < 0 && y > 0) {printf("目标在第二象限\n");} else if (x < 0 && y < 0) {printf("目标在第三象限\n");} else if (x > 0 && y < 0) {printf("目标在第四象限\n");} else if (x == 0 && y != 0) {printf("目标在Y轴上\n");} else if (y == 0 && x != 0) {printf("目标在X轴上\n");} else {printf("目标在原点\n");}
}int main() {float x, y;// 输入目标坐标printf("请输入目标的X坐标:");scanf("%f", &x);printf("请输入目标的Y坐标:");scanf("%f", &y);// 判断目标所在的象限detectQuadrant(x, y);return 0;
}

Wiener 滤波

Wiener 滤波(维纳滤波)是一种基于统计学的滤波方法,广泛应用于信号处理和图像处理等领域,旨在通过最小化均方误差(MSE)来估计信号或图像中的噪声并进行去噪处理。Wiener 滤波器的核心思想是根据信号和噪声的统计特性,构建一个最佳的滤波器,从而达到降噪的目的。

维纳滤波的基本原理

Wiener 滤波的目标是通过某种方式估计原始信号 x ( n ) x(n) x(n)(或图像中的清晰图像)并消除其中的噪声。给定噪声信号 y ( n ) y(n) y(n),维纳滤波的目标是根据已知的信号与噪声的统计特性,构建一个最优的滤波器 H ( f ) H(f) H(f),使得输出信号 z ( n ) z(n) z(n) 尽可能接近原始信号 x ( n ) x(n) x(n),并且最小化输出信号与原始信号之间的均方误差。

1. 目标函数:最小化均方误差(MSE)

Wiener 滤波的核心是最小化均方误差(MSE),即:

J = E [ ( x ( n ) − z ( n ) ) 2 ] J = E[(x(n) - z(n))^2] J=E[(x(n)z(n))2]

其中, x ( n ) x(n) x(n) 是原始信号, z ( n ) z(n) z(n) 是滤波后的信号, E [ ⋅ ] E[\cdot] E[] 表示期望值操作。Wiener 滤波器的目标是选择一个滤波器 H ( f ) H(f) H(f),使得该误差最小化。

2. 频域表示

在频域中,Wiener 滤波器的理想形式为:

H ( f ) = S x ( f ) S x ( f ) + S n ( f ) H(f) = \frac{S_x(f)}{S_x(f) + S_n(f)} H(f)=Sx(f)+Sn(f)Sx(f)

其中, S x ( f ) S_x(f) Sx(f) 是原始信号的功率谱密度, S n ( f ) S_n(f) Sn(f) 是噪声的功率谱密度。该公式的含义是,Wiener 滤波器的增益在信号强时较大,在噪声较强时较小,从而能够有效抑制噪声。

图像去噪

在图像处理中,Wiener 滤波常用于去除图像中的高斯噪声。假设原始图像 f ( x , y ) f(x, y) f(x,y) 和噪声图像 g ( x , y ) g(x, y) g(x,y) 之间的关系如下:

g ( x , y ) = f ( x , y ) + n ( x , y ) g(x, y) = f(x, y) + n(x, y) g(x,y)=f(x,y)+n(x,y)

其中, n ( x , y ) n(x, y) n(x,y) 是添加到图像中的噪声。Wiener 滤波器通过以下公式对图像进行去噪:

f ^ ( x , y ) = ∑ u , v h ( u , v ) g ( x − u , y − v ) \hat{f}(x, y) = \sum_{u, v} h(u, v) g(x-u, y-v) f^(x,y)=u,vh(u,v)g(xu,yv)

其中, h ( u , v ) h(u, v) h(u,v) 是 Wiener 滤波器核函数, f ^ ( x , y ) \hat{f}(x, y) f^(x,y) 是滤波后的图像。

维纳滤波的优势与限制

优势:

  1. 最小化均方误差:Wiener 滤波通过统计学方法,能够找到最优的滤波器,从而使得去噪效果最好,能最大限度地保留信号。
  2. 自适应性:Wiener 滤波器能够根据信号和噪声的统计特性自动调整滤波参数,具有较强的自适应性。
  3. 广泛应用:适用于各种信号和图像去噪任务,特别是对高斯噪声有良好的效果。

限制:

  1. 需要先验知识:Wiener 滤波需要了解信号和噪声的功率谱密度。若噪声模型不准确,可能导致滤波效果不佳。
  2. 计算复杂度较高:计算信号和噪声的功率谱密度以及实现频域滤波可能需要较高的计算资源。
  3. 对非高斯噪声的效果不佳:Wiener 滤波主要适用于高斯噪声,对于其他类型的噪声(如椒盐噪声),效果可能不如预期。

Wiener 滤波的实现

以下是一个基于Python的Wiener滤波实现代码示例,用于图像去噪:

import numpy as np
import cv2
from scipy.signal import convolve2ddef wiener_filter(img, noise_var, signal_var):"""实现Wiener滤波器用于图像去噪:param img: 输入的噪声图像:param noise_var: 噪声的方差:param signal_var: 信号的方差:return: 去噪后的图像"""# 获取图像的大小rows, cols = img.shape  # 获取图像的行数和列数# 对输入图像进行二维快速傅里叶变换(FFT)fft_img = np.fft.fft2(img)  # 将图像转换到频域fft_img_conj = np.conj(fft_img)  # 计算图像的共轭复数(对于频域滤波,通常使用共轭)# 计算信号的功率谱密度(Power Spectral Density,PSD)signal_psd = np.abs(fft_img) ** 2 / (rows * cols)  # 图像的功率谱(幅度的平方),并归一化到单位面积# 计算噪声的功率谱密度,噪声功率谱假设是一个常数noise_psd = noise_var * np.ones_like(signal_psd)  # 噪声的功率谱密度,假设噪声方差为常数# 计算Wiener滤波器的频域传递函数H(f)H = signal_psd / (signal_psd + noise_psd)  # Wiener滤波器的增益函数,利用信号和噪声的功率谱计算# 应用Wiener滤波器(在频域上)wiener_filtered = np.fft.ifft2(fft_img_conj * H)  # 在频域内进行滤波,进行反傅里叶变换得到去噪后的图像# 返回滤波后的图像的绝对值(因为fft的结果可能是复数)return np.abs(wiener_filtered)# 读取含噪声的图像
noisy_image = cv2.imread('noisy_image.png', cv2.IMREAD_GRAYSCALE)  # 读取灰度图像# 假设信号和噪声的方差
noise_variance = 0.1  # 假设噪声的方差为0.1
signal_variance = 0.9  # 假设信号的方差为0.9# 使用Wiener滤波进行去噪
denoised_image = wiener_filter(noisy_image, noise_variance, signal_variance)  # 对噪声图像进行去噪# 显示原始图像和去噪后的图像
cv2.imshow('Original', noisy_image)  # 显示原始噪声图像
cv2.imshow('Denoised', denoised_image)  # 显示去噪后的图像
cv2.waitKey(0)  # 等待用户按键
cv2.destroyAllWindows()  # 关闭所有OpenCV窗口

代码说明:

  1. FFT和频域操作:在代码中,我们将图像转换到频域,通过傅里叶变换计算信号的功率谱和噪声的功率谱。
  2. Wiener滤波器的实现:Wiener滤波器在频域中通过信号和噪声的功率谱来计算频域滤波函数 H ( f ) H(f) H(f),然后对图像进行滤波。
  3. 去噪图像显示:处理后的图像通过imshow函数显示,便于直观比较。
    LM2596S DC-DC降压电源模块是一款非常常见的开关电源降压转换器(Buck Converter),广泛应用于各种电子设备的电源设计中。它可以将较高的输入电压转换为较低的输出电压,且具有高效、稳定的特性。以下是对LM2596S模块的一些详细介绍。

LM2596S DC-DC 降压电源

LM2596S是由Texas Instruments (德州仪器) 提供的一款集成开关调节器芯片。该芯片采用了降压转换方式,即高电压输入经过调节后输出较低电压的过程。LM2596S模块通常集成在一块小型电路板上,具有良好的散热设计和多种输出电压选择,适合嵌入到各种项目中。

LM2596S 的特点:

  1. 宽输入电压范围
    LM2596S的输入电压范围为 4V到40V。这使得它可以从多种不同的电源(如12V电池、电源适配器等)中获取能量。

  2. 输出电压可调
    LM2596S的输出电压范围为 1.25V到37V,通过电位器调节输出电压。也有一些模块提供固定输出电压版本(如5V、12V、15V等)。

  3. 高效率
    LM2596S作为开关电源,具有相对较高的转换效率(通常高于80%),比传统线性电压调节器具有更低的功耗和更少的热量产生。

  4. 输出电流
    LM2596S可以提供最大 2A 的输出电流,这对于大多数低功耗应用来说足够。

  5. 内置过热、过载和短路保护
    LM2596S具有过热保护、过电流保护和短路保护功能,在异常情况下可以自动关闭以保护电路。

  6. 简单的外部组件
    只需要少数几个外部元件,如电感、电容、二极管等,就可以实现高效的电压转换。

LM2596S模块的元器件

  • 输入电压 (Vin):供电输入端,通常为12V或更高的电压。
  • 电感 (L):用于滤波和能量存储,帮助降低输出电压的噪声。
  • 二极管 (D):通常为肖特基二极管,用于防止反向电流。
  • 电容 ©:用于平滑输出电压,减少电压波动。

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

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

相关文章

Java Web-Cookie与Session

会话跟踪技术 会话跟踪技术是一种在 Web 应用程序中跟踪用户会话状态的机制&#xff0c;它允许服务器在多个请求之间识别和关联属于同一用户的请求&#xff0c;以便在整个会话过程中保持用户相关的信息。以下是几种常见的会话跟踪技术&#xff1a; Cookie 概念&#xff1a;Cook…

Spring Boot - 数据库集成04 - 集成Redis

Spring boot集成Redis 文章目录 Spring boot集成Redis一&#xff1a;redis基本集成1&#xff1a;RedisTemplate Jedis1.1&#xff1a;RedisTemplate1.2&#xff1a;实现案例1.2.1&#xff1a;依赖引入和属性配置1.2.2&#xff1a;redisConfig配置1.2.3&#xff1a;基础使用 2&…

STM32使用VScode开发

文章目录 Makefile形式创建项目新建stm项目下载stm32cubemx新建项目IED makefile保存到本地arm gcc是编译的工具链G++配置编译Cmake +vscode +MSYS2方式bilibiliMSYS2 统一环境配置mingw32-make -> makewindows环境变量Cmake CmakeListnijia 编译输出elfCMAKE_GENERATOR查询…

网络仿真工具Core环境搭建

目录 安装依赖包 源码下载 Core安装 FAQ 下载源码TLS出错误 问题 解决方案 找不到dbus-launch 问题 解决方案 安装依赖包 调用以下命令安装依赖包 apt-get install -y ca-certificates git sudo wget tzdata libpcap-dev libpcre3-dev \ libprotobuf-dev libxml2-de…

FPGA实现任意角度视频旋转(二)视频90度/270度无裁剪旋转

本文主要介绍如何基于FPGA实现视频的90度/270度无裁剪旋转&#xff0c;旋转效果示意图如下&#xff1a; 为了实时对比旋转效果&#xff0c;采用分屏显示进行处理&#xff0c;左边代表旋转前的视频在屏幕中的位置&#xff0c;右边代表旋转后的视频在屏幕中的位置。 分屏显示的…

董事会办公管理系统的需求设计和实现

该作者的原创文章目录&#xff1a; 生产制造执行MES系统的需求设计和实现 企业后勤管理系统的需求设计和实现 行政办公管理系统的需求设计和实现 人力资源管理HR系统的需求设计和实现 企业财务管理系统的需求设计和实现 董事会办公管理系统的需求设计和实现 公司组织架构…

esp32-C3 实现DHT11(温湿度)

安装DHT传感器库&#xff1a; 在Arduino IDE中&#xff0c;进入项目 > 加载库 > 管理库。搜索DHT sensor library并安装。 编写代码 定义引脚和传感器类型初始化传感器判断传感器是否正常读取数据 源码 #include <DHT.h> #include <DHT_U.h>// 定义DHT传感器…

【Pytest】生成html报告中,中文乱码问题解决方案

import pytestif __name__ "__main__":# 只运行 tests 目录下的测试用例&#xff0c;并生成 HTML 报告pytest.main([-v, -s, --htmlreport.html, tests])可以以上方式生成&#xff0c;也可以在pytest.ini中设置 [pytest] addopts --htmlreport.html --self-contai…

MyBatis最佳实践:提升数据库交互效率的秘密武器

第一章&#xff1a;框架的概述&#xff1a; MyBatis 框架的概述&#xff1a; MyBatis 是一个优秀的基于 Java 的持久框架&#xff0c;内部对 JDBC 做了封装&#xff0c;使开发者只需要关注 SQL 语句&#xff0c;而不关注 JDBC 的代码&#xff0c;使开发变得更加的简单MyBatis 通…

《Java程序设计》课程考核试卷

一、单项选择题&#xff08;本大题共10个小题&#xff0c;每小题2分&#xff0c;共20分&#xff09; 1.下列用来编译Java源文件为字节码文件的工具是&#xff08; &#xff09;。 A.java B.javadoc C.jar D.javac 2…

【25考研】人大计算机考研复试该怎么准备?有哪些注意事项?

人大毕竟是老牌985&#xff0c;复试难度不会太低&#xff01;建议同学认真复习&#xff01;没有机试还是轻松一些的&#xff01; 一、复试内容 由公告可见&#xff0c;复试包含笔试及面试&#xff0c;没有机试&#xff01; 二、参考书目 官方无给出参考书目&#xff0c;可参照…

使用openwrt搭建ipsec隧道

背景&#xff1a;最近同事遇到了个ipsec问题&#xff0c;做的ipsec特性&#xff0c;ftp下载ipv6性能只有100kb, 正面定位该问题也蛮久了&#xff0c;项目没有用openwrt, 不过用了开源组件strongswan, 加密算法这些也是内核自带的&#xff0c;想着开源的不太可能有问题&#xff…

[STM32 - 野火] - - - 固件库学习笔记 - - -十一.电源管理系统

一、电源管理系统简介 电源管理系统是STM32硬件设计和系统运行的基础&#xff0c;它不仅为芯片本身提供稳定的电源&#xff0c;还通过多种电源管理功能优化功耗、延长电池寿命&#xff0c;并确保系统的可靠性和稳定性。 二、电源监控器 作用&#xff1a;保证STM32芯片工作在…

数字图像处理:实验六

uu们&#xff01;大家好&#xff0c;2025年的新年就要到来&#xff0c;咸鱼哥在这里祝大家在2025年每天开心快乐&#xff0c;天天挣大钱&#xff0c;自由自在&#xff0c;健健康康&#xff0c;万事如意&#xff01;&#xff08;要是咸鱼哥嘴笨的话&#xff0c;还望大家多多包涵…

Langchain+文心一言调用

import osfrom langchain_community.llms import QianfanLLMEndpointos.environ["QIANFAN_AK"] "" os.environ["QIANFAN_SK"] ""llm_wenxin QianfanLLMEndpoint()res llm_wenxin.invoke("中国国庆日是哪一天?") print(…

上海亚商投顾:沪指冲高回落 大金融板块全天强势 上海亚商投

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一&#xff0e;市场情绪 市场全天冲高回落&#xff0c;深成指、创业板指午后翻绿。大金融板块全天强势&#xff0c;天茂集团…

kaggle比赛入门 - House Prices - Advanced Regression Techniques(第二部分)

本文承接上一篇 1. 分析住宅类型&#xff08;BldgType&#xff09;的分布以及它们与销售价格&#xff08;SalePrice&#xff09;的关系 # 1. distribution of dwelling types and their relation to sale prices # BldgType: Type of dwellingdwelling_types df[BldgType].v…

使用shell命令安装virtualbox的虚拟机并导出到vagrant的Box

0. 安装virtualbox and vagrant [rootolx79vagrant ~]# cat /etc/resolv.conf #search 114.114.114.114 nameserver 180.76.76.76-- install VirtualBox yum install oraclelinux-developer-release-* wget https://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 -O /etc/pki/rpm-g…

【数据结构】空间复杂度

目录 一、引入空间复杂度的原因 二、空间复杂度的分析 ❥ 2.1 程序运行时内存大小 ~ 程序本身大小 ❥ 2.2 程序运行时内存大小 ~ 算法运行时内存大小 ❥ 2.3 算法运行时内存大小 ❥ 2.4 不考虑算法全部运行空间的原因 三、空间复杂度 ❥ 3.1空间复杂度的定义 ❥ 3.2 空…

MySQL--》深度解析InnoDB引擎的存储与事务机制

目录 InnoDB架构 事务原理 MVCC InnoDB架构 从MySQL5.5版本开始默认使用InnoDB存储引擎&#xff0c;它擅长进行事务处理&#xff0c;具有崩溃恢复的特性&#xff0c;在日常开发中使用非常广泛&#xff0c;其逻辑存储结构图如下所示&#xff0c; 下面是InnoDB架构图&#xf…