嵌入式九轴传感器融合:LIS2MDL磁力计驱动与六轴IMU集成实战

news2026/5/18 11:07:07
1. 项目概述从六轴到九轴磁力计如何补全运动感知的最后一块拼图在之前的系列文章中我们已经成功驱动了LSM6DS3TR-C这颗六轴IMU惯性测量单元实现了对加速度和角速度的高精度采集与运动检测。但如果你想让设备像指南针一样不仅知道自己在“怎么动”还能知道“面朝哪个方向”那么六轴数据就显得力不从心了。这时就需要引入磁力计将系统升级为九轴传感器融合。本文我将以STMicroelectronics的LIS2MDL三轴磁力计为例手把手带你完成磁力计数据的获取并将其无缝集成到我们已有的六轴数据流中为后续实现高精度的九轴姿态解算如航向角Yaw打下坚实基础。简单来说磁力计就是一个电子罗盘它通过感知地球磁场为我们提供绝对的方位参考。而LIS2MDL作为一款高性能数字磁力计具有低噪声、高分辨率和内置温度补偿等优点非常适合与我们的LSM6DS3TR-C搭配使用。整个流程的核心就是通过I2C或SPI与传感器“对话”正确配置它然后稳定、准确地读出它感知到的磁场数据。听起来简单但其中关于数据同步、单位转换、配置细节的坑我踩过不少本文将一一为你道来。2. 硬件连接与通信协议选择在写第一行代码之前正确的硬件连接是成功的基石。LIS2MDL支持I2C和SPI两种通信协议选择哪一种取决于你的主控资源、布线复杂度和对速度的需求。2.1 通信模式选择与硬件连接查看LIS2MDL的数据手册其引脚定义中有一个关键的CS片选引脚。这个引脚的状态直接决定了芯片的通信模式当CS引脚接高电平VDD时芯片工作于I2C模式。当CS引脚接低电平GND时芯片工作于SPI模式。对于大多数嵌入式应用特别是当主控的I2C接口资源充足且传感器数量不多时I2C模式因其接线简单仅需SDA和SCL两根数据线而成为首选。本文也将以I2C模式进行讲解。我的硬件连接如下以常见的STM32系列MCU为例LIS2MDL的VDD- MCU的3.3VLIS2MDL的GND- MCU的GNDLIS2MDL的SDA- MCU的I2C数据线如PB9LIS2MDL的SCL- MCU的I2C时钟线如PB8LIS2MDL的CS- 接3.3V即VDD将其拉高以选择I2C模式。LIS2MDL的INT- 可悬空或接MCU中断引脚用于数据就绪中断本文先使用轮询方式故可悬空。注意务必确认你的MCU IO口支持I2C功能并且已经正确配置为上拉或开漏模式。I2C总线需要上拉电阻通常MCU内部或开发板已有若没有则需要在SDA和SCL线上各接一个4.7kΩ左右的上拉电阻到3.3V。2.2 I2C速率配置考量LIS2MDL的I2C接口支持多种速率模式标准模式100 kHz、快速模式400 kHz、快速模式1 MHz和高速模式3.4 MHz。选择哪个速率这里有个经验之谈标准模式100kHz最通用兼容性最好布线较长时也更稳定。快速模式400kHz最推荐。在保证稳定性的前提下提供了更高的数据吞吐率足以满足LIS2MDL最高100Hz的输出数据率ODR需求且绝大多数MCU都稳定支持。更高速率1M/3.4M除非你有非常极端的多传感器、高ODR需求否则意义不大。更高的速率对PCB布局、走线长度要求更苛刻容易引入噪声和通信错误。因此在初始化MCU的I2C外设时我通常会将其配置为快速模式400kHz。这是一个在性能和可靠性之间取得很好平衡的选择。3. 软件驱动从零开始构建读取流程硬件准备就绪后我们进入软件部分。我将使用ST官方提供的HAL库和LIS2MDL的驱动程序可以从ST的GitHub或CubeMX中获取作为基础但会重点讲解那些数据手册不会告诉你的配置细节和避坑指南。3.1 驱动层接口与设备上下文初始化首先我们需要为传感器定义一个“操作手柄”即设备上下文stmdev_ctx_t。这个结构体包含了读写寄存器以及延时函数的指针是驱动与硬件平台之间的桥梁。// 定义传感器设备上下文 stmdev_ctx_t lis2mdl_dev_ctx; // 初始化平台相关的函数指针 lis2mdl_dev_ctx.write_reg lis2mdl_platform_write; // 你实现的I2C写函数 lis2mdl_dev_ctx.read_reg lis2mdl_platform_read; // 你实现的I2C读函数 lis2mdl_dev_ctx.mdelay HAL_Delay; // 使用HAL库的延时函数 lis2mdl_dev_ctx.handle hi2c1; // 指向你的I2C句柄例如 hi2c1这里的lis2mdl_platform_write和lis2mdl_platform_read需要你自己根据所用的MCU和I2C库来实现。它们的作用是封装底层的I2C读写操作以适配ST驱动库的调用接口。一个典型的实现如下// 平台写寄存器函数 static int32_t lis2mdl_platform_write(void *handle, uint8_t reg, const uint8_t *bufp, uint16_t len) { // handle 实际上就是我们传入的 I2C 句柄指针 I2C_HandleTypeDef *i2c_handle (I2C_HandleTypeDef *)handle; // LIS2MDL的I2C地址是0x1E7位地址。注意HAL库通常需要左移一位写操作位为0。 uint8_t device_address LIS2MDL_I2C_ADD_WRITE; // 使用HAL_I2C_Mem_Write它可以一次性写入寄存器地址和数据 if (HAL_I2C_Mem_Write(i2c_handle, device_address, reg, I2C_MEMADD_SIZE_8BIT, (uint8_t*)bufp, len, 1000) ! HAL_OK) { return -1; // 通信失败 } return 0; // 成功 }实操心得在实现读写函数时务必处理好错误返回。驱动库很多函数会检查这些底层函数的返回值。建议在开发初期在这些函数中加入调试打印信息如printf(“Write Reg: 0x%02X, Len: %d\n”, reg, len)这能极大帮助你定位通信失败的问题。3.2 传感器初始化与关键配置解析初始化不仅仅是让传感器工作更是让其工作在最优、最稳定的状态。以下步骤一个都不能少且顺序有讲究。3.2.1 验证设备IDWHO_AM_I这是通信成功后的第一步自检。向寄存器0x4F读取一个字节LIS2MDL会返回固定的值0x40。如果不匹配说明通信失败、芯片型号错误或接线有问题。uint8_t whoami; lis2mdl_device_id_get(lis2mdl_dev_ctx, whoami); if (whoami ! LIS2MDL_ID) // LIS2MDL_ID 应为 0x40 { printf(“错误设备ID不匹配 (读到: 0x%02X)\n”, whoami); while(1); // 或进行其他错误处理 } printf(“LIS2MDL 设备ID验证成功: 0x%02X\n”, whoami);3.2.2 执行软件复位在开始配置前进行一次软件复位是个好习惯。这能确保传感器从已知的默认状态开始避免之前可能残留的异常配置影响。通过向CFG_REG_A0x60寄存器的SOFT_RST位写1来实现。lis2mdl_reset_set(lis2mdl_dev_ctx, PROPERTY_ENABLE); // 复位需要一点时间等待复位完成标志位清除 uint8_t rst; do { lis2mdl_reset_get(lis2mdl_dev_ctx, rst); } while (rst);3.2.3 启用块数据更新BDU这是至关重要的一步却容易被忽略。磁力计的数据输出寄存器如X轴低字节0x68和高字节0x69是分开的。如果不启用BDU当你读取低字节后、高字节前如果传感器产生了新数据高字节寄存器可能会被更新。这会导致你读到的“高字节”和“低字节”不属于同一个采样时刻数据就错乱了。启用BDU后输出寄存器内容会在读取操作开始后被“锁定”直到所有相关寄存器都被读完从而保证数据的一致性。通过设置CFG_REG_C0x62寄存器的BDU位为1来开启。lis2mdl_block_data_update_set(lis2mdl_dev_ctx, PROPERTY_ENABLE);3.2.4 配置输出数据率ODR和模式接下来配置传感器的工作节奏。通过CFG_REG_A0x60的ODR[1:0]位来设置。LIS2MDL支持多种ODR例如10Hz, 20Hz, 50Hz, 100Hz。选择哪个ODR功耗考虑ODR越高功耗越大。数据融合需求你的九轴融合算法如Mahony, Madgwick, 或ST的MotionFX需要多快的姿态更新率通常与你的陀螺仪、加速度计ODR保持一致或成倍数关系。例如LSM6DS3TR-C的ODR设为104Hz那么磁力计设为50Hz或100Hz都是合理的。带宽需求磁力计本身带宽不高过高的ODR可能只是产生更多冗余数据。这里我选择50Hz这是一个平衡点。同时将传感器设置为连续转换模式MD[1:0] 00让它持续工作。// 设置输出数据率为 50Hz lis2mdl_data_rate_set(lis2mdl_dev_ctx, LIS2MDL_ODR_50Hz); // 设置为连续模式 lis2mdl_operating_mode_set(lis2mdl_dev_ctx, LIS2MDL_CONTINUOUS_MODE);3.2.5 启用偏移消除与温度补偿磁力计非常容易受到硬铁干扰PCB上的磁性元件和软铁干扰周围导磁物质的影响。LIS2MDL提供了内置的偏移消除功能可以通过设置CFG_REG_B0x61的OFF_CANC位来启用。一种推荐模式是LIS2MDL_SENS_OFF_CANC_EVERY_ODR即在每个数据输出周期都自动执行一次偏移消除。这能动态地补偿一些缓慢变化的干扰。lis2mdl_set_rst_mode_set(lis2mdl_dev_ctx, LIS2MDL_SENS_OFF_CANC_EVERY_ODR);此外磁力计的灵敏度会随温度漂移。LIS2MDL内置了温度传感器可以通过设置CFG_REG_A0x60的COMP_TEMP_EN位来启用温度补偿提高数据在不同环境下的稳定性。lis2mdl_offset_temp_comp_set(lis2mdl_dev_ctx, PROPERTY_ENABLE);注意事项偏移消除功能主要针对传感器自身的零偏和固定的硬铁干扰。对于需要高精度航向的应用如无人机、导航仅靠此功能是不够的。你通常还需要在系统上电后让设备在水平面上缓慢旋转几周通过算法如椭球拟合或最小二乘法计算并补偿一个更精确的硬铁和软铁干扰矩阵。这是磁力计校准的高级话题本文聚焦于数据获取暂不展开。4. 数据读取、转换与集成到六轴系统配置完成后传感器就开始源源不断地产生数据了。我们需要定时去读取它。4.1 轮询读取与数据状态检查最简单的方式是轮询。LIS2MDL有一个状态寄存器STATUS_REG0x67其中的ZYXDA位指示三轴X, Y, Z的新数据是否都已就绪。在读取数据前先检查这个位可以避免读取重复或无效的数据。uint8_t reg; // 检查是否有新的磁力数据可用 if (lis2mdl_mag_data_ready_get(lis2mdl_dev_ctx, reg) 0 reg) { // 数据已就绪进行读取 // ... }4.2 读取原始数据与单位转换使用驱动库提供的函数可以一次性读取三轴的原始数据RAW Data。这些数据是带符号的16位整数存储在int16_t类型的数组中。int16_t data_raw_magnetic[3]; float magnetic_mG[3]; // 读取三轴磁力原始数据 lis2mdl_magnetic_raw_get(lis2mdl_dev_ctx, data_raw_magnetic);原始数据本身没有物理意义需要转换成有单位的物理量。LIS2MDL的满量程通常是±50高斯Gauss。驱动库通常提供一个转换函数将LSB最低有效位转换为毫高斯mG。1高斯 1000毫高斯。// 将原始数据转换为毫高斯mG magnetic_mG[0] lis2mdl_from_lsb_to_mgauss(data_raw_magnetic[0]); magnetic_mG[1] lis2mdl_from_lsb_to_mgauss(data_raw_magnetic[1]); magnetic_mG[2] lis2mdl_from_lsb_to_mgauss(data_raw_magnetic[2]); printf(“磁场强度 [mG]: X:%7.2f, Y:%7.2f, Z:%7.2f\n”, magnetic_mG[0], magnetic_mG[1], magnetic_mG[2]);为什么是毫高斯地球磁场的强度大约在 250mG 到 650mG 之间因地理位置而异。使用毫高斯作为单位数值大小比较直观也便于后续计算。4.3 与六轴数据流进行同步集成现在我们有了独立的磁力计数据流。但要实现九轴融合关键是要让磁力计的数据与LSM6DS3TR-C的加速度计、陀螺仪数据在时间上对齐。最理想的方式是使用硬件触发或精确的定时器确保在同一时刻采样所有传感器。但在资源有限或简化设计时一种实用的方法是在读取六轴FIFO数据的循环中“顺便”读取一次最新的磁力计数据。假设我们之前已经配置LSM6DS3TR-C使用FIFO模式存储加速度和陀螺仪数据并在主循环中批量读取处理。集成磁力计的修改点如下while (1) { if (fifo_flag) { // FIFO数据就绪标志 for (int i 0; i fifo_num; i) { // 遍历FIFO中每一组数据 // 1. 解析FIFO中的陀螺仪数据 (gyr_fifo[i]) // ... (原有代码将原始数据转换为mdps) gyr_x lsm6ds3tr_c_from_fs2000dps_to_mdps(...); // 2. 解析FIFO中的加速度计数据 (acc_fifo[i]) // ... (原有代码将原始数据转换为mg) acc_x lsm6ds3tr_c_from_fs4g_to_mg(...); // 3. 【新增】在每处理一组六轴数据时读取一次磁力计数据 // 注意这里隐含假设读取磁力计的速度很快与六轴数据采样间隔相比可忽略。 // 更精确的做法是为磁力计数据也打上时间戳并与六轴时间戳进行插值对齐。 int16_t mag_raw[3]; float magnetic_mG[3]; if (lis2mdl_mag_data_ready_get(lis2mdl_dev_ctx, reg) 0 reg) { lis2mdl_magnetic_raw_get(lis2mdl_dev_ctx, mag_raw); magnetic_mG[0] lis2mdl_from_lsb_to_mgauss(mag_raw[0]); magnetic_mG[1] lis2mdl_from_lsb_to_mgauss(mag_raw[1]); magnetic_mG[2] lis2mdl_from_lsb_to_mgauss(mag_raw[2]); } else { // 如果磁力计数据未就绪可以使用上一次的数据或做标记 // 对于50Hz ODR在100Hz的六轴循环中约有一半循环没有新磁力数据这是正常的。 } // 4. 现在我们拥有了时间上近似对齐的一组九轴数据 // acc_x, acc_y, acc_z (mg) // gyr_x, gyr_y, gyr_z (mdps) // mag_x, mag_y, mag_z (mG) // 可以将这9个值送入传感器融合算法如MotionFX进行计算。 // lsm6ds3tr_c_motion_fx_determin(acc, gyr, mag, ...); } fifo_flag 0; } }核心技巧数据同步的思考上述方法是一种“松散同步”在六轴ODR远高于磁力计ODR时可能会用多组六轴数据对应同一组磁力计数据。对于要求不高的应用如航模、姿态球这可以接受。但对于高精度导航强烈建议使用传感器的时间戳功能如果LSM6DS3TR-C和LIS2MDL都支持将时间戳写入FIFO那么可以根据时间戳在后台进行数据对齐和插值。使用外部中断同步将其中一个传感器如IMU的数据就绪中断DRDY连接到另一个传感器的启动转换引脚实现硬件同步采样。使用相同的ODR并定时读取将两者ODR设为相同值并使用一个精准的定时器中断在中断服务程序里同时读取所有传感器的数据。5. 调试技巧与常见问题排查实录即使按照步骤操作第一次也难免遇到问题。下面是我在调试LIS2MDL时遇到的一些典型情况及解决方法。问题1读取设备ID失败一直返回0x00或0xFF。排查思路硬件连接用万用表检查VDD、GND是否接通。用示波器或逻辑分析仪查看I2C的SCL和SDA线上是否有波形。确认CS引脚是否已正确拉高。I2C地址确认你使用的7位地址是否正确。LIS2MDL的I2C地址是0x1E当SA0引脚接GND时。在HAL库调用中需要左移一位写地址是0x3C读地址是0x3D。但驱动库的读写函数内部通常会处理这个你只需要传入正确的7位地址基值。上拉电阻确认I2C总线上有上拉电阻通常4.7kΩ。如果没有通信电平无法被拉高。软件时序在platform_write/read函数中加入重试机制和超时判断。检查MCU的I2C初始化代码时钟配置是否正确。问题2能读到ID但读取的数据全为0或固定不变。排查思路BDU设置这是最常见的原因确认你是否已经正确启用块数据更新BDU。没有BDU你读到的可能是被撕裂的不完整数据常常表现为0或极小的固定值。工作模式确认你是否已将传感器设置为连续模式CONTINUOUS_MODE。如果处于单次模式或空闲模式它只会在触发后测量一次。数据就绪检查在读取数据前是否检查了状态寄存器ZYXDA位如果在新数据未就绪时读取会得到旧数据或无效数据。寄存器读写验证写一个简单的测试读取你刚才配置过的寄存器如CFG_REG_A看看写入的值是否生效。这可以排除底层I2C写函数的问题。问题3数据跳动很大噪声明显。排查思路电源噪声确保给传感器的电源是干净的。可以在VDD和GND之间并联一个100nF和一个10uF的电容尽量靠近传感器引脚放置。磁干扰让传感器远离所有可能的磁干扰源电机、扬声器、变压器、甚至PCB上的电流走线。尝试在空旷无电子设备的环境下测试。校准如前所述启用OFF_CANC_EVERY_ODR。进行系统级的磁力计校准旋转设备。滤波器LIS2MDL内部有可配置的低通滤波器。查看CFG_REG_A的LPF位和CFG_REG_B的LOW_PASS_FILTER相关位适当启用或调整截止频率可以平滑数据但会引入延迟。问题4与六轴数据融合后航向角Yaw漂移或不准。排查思路数据同步这是首要怀疑对象。确保融合算法接收到的九轴数据是尽可能同一时刻采样的。检查你的数据采集循环耗时如果太长考虑使用中断或DMA。坐标系对齐确认加速度计、陀螺仪、磁力计的X, Y, Z轴在物理安装上是否指向一致如果不一致需要在软件中进行轴映射和符号校正。磁力计校准未校准的磁力计数据是融合结果不准的主要原因。必须进行硬铁和软铁干扰校准。可以记录设备在水平面多方向旋转时的磁力计数据然后用校准算法计算补偿矩阵和偏移量。融合算法参数检查你使用的传感器融合算法如Madgwick, Mahony, MotionFX的参数特别是陀螺仪测量误差的β值或Ki, Kp值。这些参数需要根据实际应用场景动态剧烈程度进行微调。最后分享一个调试利器串口数据可视化。不要只满足于看打印的数字。将读取到的三轴磁场数据mG通过串口发送到电脑使用诸如CoolTerm、Serial PlotterArduino IDE自带或自己用PythonMatplotlib写一个简单的实时绘图脚本。观察波形是否平滑是否随设备旋转有规律地正弦变化。这能给你最直观的反馈远比看终端里跳动的数字有效得多。当你平稳旋转设备时X和Y轴的输出应该近似两个相位差90度的正弦波这是判断传感器工作是否正常、校准是否有效的黄金标准。

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…