嵌入式实战:基于STM32的MPU6050卡尔曼滤波姿态解算(附源码)
1. 从零开始为什么你的MPU6050数据总是不准大家好我是老张一个在嵌入式圈子里摸爬滚打了十多年的老工程师。今天想和大家聊聊一个非常经典但又让无数新手头疼的问题如何用STM32单片机让MPU6050这个“小陀螺”输出稳定、可靠的角度数据。你是不是也遇到过这种情况明明传感器焊好了代码也照着抄了但读出来的角度数据要么抖得像“帕金森”要么漂得“一去不复返”做个平衡车直接变“不倒翁”搞个无人机分分钟“炸机”给你看。问题的根源其实就出在MPU6050本身。它虽然集成了三轴加速度计和三轴陀螺仪但这两个家伙各有各的“臭脾气”。加速度计通过测量重力加速度在各个轴上的分量可以算出物体相对于水平面的倾斜角这个方法在静止或匀速运动时很准。但一旦你的设备动起来有了额外的加速度比如平衡车突然加速加速度计的数据就会受到严重干扰算出来的角度也就“失真”了。而陀螺仪呢它测量的是角速度通过积分可以得到角度变化响应非常快短期精度高。可它有个致命的缺点——漂移。哪怕设备完全静止陀螺仪的微小零偏误差也会在积分过程中被不断放大时间一长角度值就不知道跑到哪里去了这就是所谓的“积分漂移”。所以单靠任何一种传感器都很难获得稳定、准确的角度。这就好比你要判断一个人的位置加速度计告诉你“他大概在客厅”但可能指错了房间陀螺仪告诉你“他正在以每秒一步的速度向右走”但走着走着方向就偏了。我们需要一个“聪明”的方法把这两份不完美的信息融合起来取长补短。这个方法就是我们今天要深入实战的卡尔曼滤波。它不是一个简单的“取平均”而是一套完整的数学框架能够根据传感器数据的“可信度”噪声大小动态地调整对加速度计和陀螺仪数据的信任权重最终输出一个最优的估计值。接下来我就手把手带你用STM32和一份我优化过的源码彻底搞定姿态解算。2. 硬件连接别让第一步就成“坑”在写代码之前硬件连接是基础这一步搞不定后面全是白费劲。很多人觉得不就是接几根线嘛但这里面的细节恰恰是决定系统稳定性的关键。2.1 核心器件选型与电路连接首先你需要准备一块STM32开发板比如STM32F103C8T6核心板也就是常说的“蓝板”资源足够且便宜和一个MPU6050模块。MPU6050模块通常已经集成了必要的稳压芯片和上拉电阻用起来很方便。连接上核心就是I2C这两根线SDA串行数据线连接STM32的PB7或PB9根据你的芯片和配置到MPU6050模块的SDA。SCL串行时钟线连接STM32的PB6或PB8到MPU6050模块的SCL。这里有个大坑需要注意STM32的I/O口默认是浮空输入状态。对于I2C这种开漏输出协议必须外接上拉电阻否则信号无法被拉高通信必然失败。虽然很多MPU6050模块板载了上拉电阻通常是4.7kΩ或10kΩ但为了保险起见尤其是在面包板上搭建电路时我习惯在STM32这端的SDA和SCL线上再各加一个4.7kΩ的电阻上拉到3.3V。电源方面MPU6050的VCC接3.3VGND接共地切记不要接错到5V否则可能烧毁传感器。2.2 电源与接地稳定的基石噪声往往从电源窜入。务必确保给MPU6050供电的3.3V电源是干净的。最好使用开发板上经过LDO低压差线性稳压器稳压后的3.3V而不是直接从USB的5V通过简单分压得到。在MPU6050的电源引脚附近一定要紧挨着焊接一个0.1uF104的陶瓷电容到地用于滤除高频噪声。同时在模块的3.3V输入处可以再并联一个10uF的钽电容滤除低频干扰。接地同样重要。要确保STM32和MPU6050的地线GND是“共地”的即它们之间是连通的并且回路阻抗尽量小。在画PCB或者用杜邦线连接时避免让信号线和电源线形成大的环路这相当于一个天线很容易引入干扰。我的经验是用一根粗一点的线专门作为“地总线”所有器件的地都接到这根线上。2.3 额外的“外挂”为何需要磁力计细心的朋友可能会发现MPU6050只能解算俯仰角Pitch和横滚角Roll却无法得知航向角Yaw。因为加速度计感知的重力矢量在水平面旋转时是不变的。这就好比你的手机平放在桌面上转动加速度计读数是不会变的。要想获得完整的三轴姿态常用于无人机、机器人导航就需要引入磁力计也就是电子罗盘例如HMC5883L或QMC5883。磁力计可以感知地球磁场方向从而解算出航向角。将MPU6050加速度计陀螺仪和磁力计的数据融合就是所谓的九轴传感器融合通常采用更高级的算法如扩展卡尔曼滤波EKF或互补滤波的升级版Mahony滤波、Madgwick滤波。在本文中我们先聚焦于用卡尔曼滤波搞定最核心的俯仰和横滚角这是理解一切姿态解算的基础。掌握了这个后续加入磁力计就是水到渠成的事情。3. 卡尔曼滤波听懂这个故事你就懂了算法一提到卡尔曼滤波很多人就被那一堆矩阵公式吓退了。别怕我们暂时忘掉数学用一个你每天都会经历的场景来理解它。假设你在一个非常雾霾的天气里开车看不清路。你车上有两个不太靠谱的助手GPS导航类似加速度计它告诉你现在的位置但更新很慢1秒一次而且在隧道或高楼间误差很大动不动就漂移几百米。车速表类似陀螺仪它告诉你车的速度你根据速度和上一秒的位置可以推算出当前应该在哪。这个推算很快每秒都能算但车速表本身有轻微误差而且只要你一直按推算的位置开下去这个小小的误差会累积得越来越大最后可能开到沟里。卡尔曼滤波就是你车上的智能管家。它的工作流程是这样的预测靠车速表管家说“老板根据上一秒我们在A点以及车速表显示我们正以60km/h向北开这一秒我们应该在A点北面约16.7米处。” 但这个预测位置是有不确定性的因为车速表不准。更新参考GPS下一秒慢吞吞的GPS信号来了说“检测到你在B点。” 管家一看B点和自己预测的点不一样。这时管家不会完全相信GPS也不会完全相信自己预测。融合最优估计管家会做一个聪明的决策如果GPS平时很准噪声小这次就多相信GPS一点如果车速表最近很稳预测准就多相信预测一点。最后它得出一个最优估计位置C这个C点比单纯的GPS或单纯的预测都更接近真实位置。同时管家还会更新它对这两个助手“可信度”的判断用于下一次决策。映射到我们的MPU6050预测利用陀螺仪测量的角速度结合上一时刻的最优角度预测出当前时刻的角度。当前角度预测 上一刻角度 角速度 × 时间间隔。更新获取加速度计计算出的角度通过atan2(accY, accZ)等公式。融合卡尔曼滤波根据预测的不确定性协方差P和测量的不确定性噪声R计算出一个卡尔曼增益K。这个K值就像管家的“信任权重”。最终角度 预测角度 K × (测量角度 - 预测角度)。如果测量很准R小K就大结果更偏向测量值如果预测很准P小K就小结果更相信预测。4. 软件实战一步步写出稳定的姿态解算代码理论懂了我们开始动手写代码。我会用STM32的HAL库来演示这样代码更清晰也更容易移植到不同型号的STM32上。4.1 工程创建与I2C驱动配置首先使用STM32CubeMX创建一个工程选择你的芯片型号。在Pinout Configuration界面将I2C1或I2C2的模式设置为I2C模式选择I2C。通常我们使用软件模拟I2C通过GPIO模拟时序更灵活但为了稳定性和效率这里直接使用硬件I2C。配置I2C速度为标准模式100kHz或快速模式400kHz。MPU6050都支持。然后配置一个定时器如TIM2用于产生精确的采样中断。姿态解算需要固定的采样周期这是卡尔曼滤波正确工作的前提。将定时器设置为溢出中断模式预分频和自动重装值根据你的系统时钟计算使其产生5ms或10ms的中断。这个时间就是我们的采样周期dt。在Project Manager中设置好工程名、路径和IDEKeil或IAR生成代码。4.2 MPU6050驱动程序与数据读取在生成的工程中我们首先编写MPU6050的驱动。核心是初始化、读写寄存器函数。// mpu6050.h #define MPU6050_ADDR 0xD0 // 7位地址左移一位写操作 #define SMPLRT_DIV 0x19 #define CONFIG 0x1A #define GYRO_CONFIG 0x1B #define ACCEL_CONFIG 0x1C #define ACCEL_XOUT_H 0x3B #define PWR_MGMT_1 0x6B // mpu6050.c uint8_t MPU6050_Init(I2C_HandleTypeDef *hi2c) { HAL_StatusTypeDef status; // 1. 解除休眠状态 uint8_t check; uint8_t data; HAL_I2C_Mem_Read(hi2c, MPU6050_ADDR, WHO_AM_I, 1, check, 1, 100); if(check ! 0x68) return 1; // 不是MPU6050 // 2. 设置电源管理使用内部8MHz晶振 data 0x00; HAL_I2C_Mem_Write(hi2c, MPU6050_ADDR, PWR_MGMT_1, 1, data, 1, 100); // 3. 设置陀螺仪量程 ±2000°/s data 0x18; HAL_I2C_Mem_Write(hi2c, MPU6050_ADDR, GYRO_CONFIG, 1, data, 1, 100); // 4. 设置加速度计量程 ±8g data 0x10; HAL_I2C_Mem_Write(hi2c, MPU6050_ADDR, ACCEL_CONFIG, 1, data, 1, 100); // 5. 设置数字低通滤波器带宽 44Hz data 0x03; HAL_I2C_Mem_Write(hi2c, MPU6050_ADDR, CONFIG, 1, data, 1, 100); // 6. 设置采样率分频器采样率 1kHz / (1 SMPLRT_DIV) data 0x07; // 125Hz采样率 HAL_I2C_Mem_Write(hi2c, MPU6050_ADDR, SMPLRT_DIV, 1, data, 1, 100); return 0; } void MPU6050_ReadRawData(I2C_HandleTypeDef *hi2c, int16_t* accel, int16_t* gyro) { uint8_t buf[14]; HAL_I2C_Mem_Read(hi2c, MPU6050_ADDR, ACCEL_XOUT_H, 1, buf, 14, 100); accel[0] (int16_t)((buf[0] 8) | buf[1]); // Accel X accel[1] (int16_t)((buf[2] 8) | buf[3]); // Accel Y accel[2] (int16_t)((buf[4] 8) | buf[5]); // Accel Z gyro[0] (int16_t)((buf[8] 8) | buf[9]); // Gyro X gyro[1] (int16_t((buf[10] 8) | buf[11]); // Gyro Y gyro[2] (int16_t)((buf[12] 8) | buf[13]); // Gyro Z }读取到原始数据后需要根据设置的量程转换为实际的物理量。例如加速度计量程为±8g时灵敏度为4096 LSB/g。所以accel_x_g accel_raw_x / 4096.0。陀螺仪量程为±2000°/s时灵敏度为16.4 LSB/(°/s)。所以gyro_x_dps gyro_raw_x / 16.4。4.3 一维卡尔曼滤波器的C语言实现我们首先实现一个最简单的一维卡尔曼滤波器用于融合单个轴比如X轴的加速度计角度和陀螺仪角速度。这是理解多维滤波的基础。// kalman_filter.h typedef struct { float Q_angle; // 过程噪声协方差角度 float Q_bias; // 过程噪声协方差零偏 float R_measure; // 测量噪声协方差 float angle; // 最优估计角度 float bias; // 陀螺仪零偏估计 float P[2][2]; // 误差协方差矩阵 } KalmanFilter; void KalmanFilter_Init(KalmanFilter *kf, float Q_angle, float Q_bias, float R_measure); float KalmanFilter_Update(KalmanFilter *kf, float newAngle, float newRate, float dt); // kalman_filter.c void KalmanFilter_Init(KalmanFilter *kf, float Q_angle, float Q_bias, float R_measure) { kf-Q_angle Q_angle; kf-Q_bias Q_bias; kf-R_measure R_measure; kf-angle 0.0f; kf-bias 0.0f; kf-P[0][0] 0.0f; kf-P[0][1] 0.0f; kf-P[1][0] 0.0f; kf-P[1][1] 0.0f; } float KalmanFilter_Update(KalmanFilter *kf, float newAngle, float newRate, float dt) { // 预测步骤 kf-angle dt * (newRate - kf-bias); kf-P[0][0] dt * (dt * kf-P[1][1] - kf-P[0][1] - kf-P[1][0] kf-Q_angle); kf-P[0][1] - dt * kf-P[1][1]; kf-P[1][0] - dt * kf-P[1][1]; kf-P[1][1] kf-Q_bias * dt; // 计算卡尔曼增益 float S kf-P[0][0] kf-R_measure; float K[2]; K[0] kf-P[0][0] / S; K[1] kf-P[1][0] / S; // 更新步骤 float y newAngle - kf-angle; // 测量残差 kf-angle K[0] * y; kf-bias K[1] * y; // 更新误差协方差 float P00_temp kf-P[0][0]; float P01_temp kf-P[0][1]; kf-P[0][0] - K[0] * P00_temp; kf-P[0][1] - K[0] * P01_temp; kf-P[1][0] - K[1] * P00_temp; kf-P[1][1] - K[1] * P01_temp; return kf-angle; }这个代码就是前面“开车管家”故事的具体实现。Q_angle和Q_bias代表了我们对预测模型的不信任程度过程噪声R_measure代表了对加速度计测量的不信任程度测量噪声。这三个参数需要根据实际调试来设定。4.4 主循环与中断服务程序整合最后我们在定时器中断里定时读取传感器数据并进行滤波计算。// main.c 中全局变量 KalmanFilter kf_pitch kf_roll; int16_t accel_raw[3] gyro_raw[3]; float accel_g[3] gyro_dps[3]; float dt 0.01f; // 假设定时器中断为10ms // 定时器中断回调函数 void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { if(htim-Instance TIM2) { // 1. 读取原始数据 MPU6050_ReadRawData(hi2c1, accel_raw, gyro_raw); // 2. 转换为物理量 for(int i0; i3; i) { accel_g[i] accel_raw[i] / 4096.0f; // ±8g量程 gyro_dps[i] gyro_raw[i] / 16.4f; // ±2000dps量程 } // 3. 由加速度计算俯仰角和横滚角 (单位弧度) // 注意这里假设传感器水平放置时Z轴朝上。公式需根据你的安装方式调整。 float acc_pitch atan2(-accel_g[0], sqrt(accel_g[1]*accel_g[1] accel_g[2]*accel_g[2])); float acc_roll atan2(accel_g[1], accel_g[2]); // 4. 卡尔曼滤波更新 float kalman_pitch KalmanFilter_Update(kf_pitch, acc_pitch, gyro_dps[1], dt); // 俯仰角对应陀螺仪Y轴 float kalman_roll KalmanFilter_Update(kf_roll, acc_roll, gyro_dps[0], dt); // 横滚角对应陀螺仪X轴 // 5. 转换为角度制并输出例如通过串口 kalman_pitch * 57.29578f; // 弧度转角度 kalman_roll * 57.29578f; printf(Pitch: %.2f, Roll: %.2f\r\n, kalman_pitch, kalman_roll); } } // 主函数 int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_I2C1_Init(); MX_TIM2_Init(); MX_USART1_UART_Init(); // 初始化MPU6050 while(MPU6050_Init(hi2c1) ! 0) { printf(MPU6050 Init Failed!\r\n); HAL_Delay(1000); } printf(MPU6050 Init OK!\r\n); // 初始化两个卡尔曼滤波器参数需要调试 KalmanFilter_Init(kf_pitch, 0.001f, 0.003f, 0.03f); KalmanFilter_Init(kf_roll, 0.001f, 0.003f, 0.03f); // 启动定时器中断 HAL_TIM_Base_Start_IT(htim2); while (1) { // 主循环可以处理其他任务如按键扫描、状态显示等 HAL_Delay(1000); } }5. 调试与优化让数据从“能用”到“好用”代码跑起来能看到角度输出了但这只是开始。要让它在实际项目如平衡车中稳定工作还需要精细的调试和优化。5.1 参数调参找到滤波器的“甜点”卡尔曼滤波的性能很大程度上取决于Q_angle、Q_bias和R_measure这三个参数。它们没有标准答案需要根据你的具体应用场景和传感器噪声水平来调整。R_measure测量噪声协方差这代表你有多信任加速度计。如果传感器静止时加速度计算出的角度波动很大噪声大就把这个值调大告诉滤波器“加速度计不太靠谱少信它一点”。如果波动很小就调小。Q_angle和Q_bias过程噪声协方差这代表你有多信任陀螺仪积分预测的模型。如果陀螺仪本身噪声大或者你的采样时间dt不稳定预测就会不准这时需要把Q_angle调大。Q_bias与陀螺仪零偏的变化率有关通常设为一个较小的固定值。调试方法将设备静止放置观察滤波后的角度输出。理想情况是一条平稳的直线。如果输出曲线反应迟钝跟不上你手动翻转传感器的速度说明滤波器过于信任预测R_measure太大或Q_angle太小需要减小R_measure或增大Q_angle。如果输出曲线高频抖动明显说明滤波器过于信任带噪声的加速度计测量值R_measure太小需要增大R_measure。可以尝试从一组经验值开始如Q_angle0.001, Q_bias0.003, R_measure0.03然后微调观察效果。5.2 传感器校准消除“出厂误差”任何传感器都有误差MPU6050也不例外。陀螺仪零偏和加速度计零偏是必须校准的。陀螺仪零偏校准将传感器绝对静止地放置一段时间比如2秒在这段时间内连续读取陀螺仪数据并求平均值这个平均值就是各轴的零偏。在后续计算角速度时每次读出的原始值都要减去这个零偏。加速度计校准水平静止放置理论上Z轴输出应为1g对应灵敏度X、Y轴输出应为0。记录下此时的原始输出值作为偏移量。更精确的方法需要六面校准法将传感器六个面依次朝下静止放置采集数据。将校准值保存在STM32的Flash中上电后加载能极大提升系统初始精度。5.3 进阶优化从一维到三维与DMP的取舍我们上面实现的是两个独立的一维卡尔曼滤波器分别处理俯仰和横滚。这在大多数情况下已经足够。但更严谨的做法是使用一个多维卡尔曼滤波器同时估计俯仰、横滚角以及陀螺仪的零偏状态变量可能是[角度 角度 零偏X 零偏Y]。这需要处理矩阵运算对STM32的算力有一定要求但理论更完备能更好地处理轴间耦合。另外MPU6050内部其实自带一个“黑盒子”——DMP数字运动处理器。你可以把原始数据丢给它它直接在芯片内部完成姿态解算四元数形式然后通过中断通知单片机读取结果。这极大减轻了MCU的负担效果通常也不错。但DMP是闭源的灵活性差且需要从官方库中加载固件过程稍显繁琐。对于学习算法原理和需要深度定制的项目自己实现卡尔曼滤波是更好的选择对于追求快速上线、MCU资源紧张的项目DMP是一个高效的解决方案。最后记得在调试时充分利用串口绘图工具如Serial Plotter, Vofa等。将原始加速度计角度、原始陀螺仪积分角度和卡尔曼滤波后的角度同时发送到上位机并绘图你能非常直观地看到滤波器的效果原始加速度计信号毛刺多陀螺仪积分会漂移而卡尔曼滤波后的曲线应该是一条平滑且紧跟真实姿态的曲线。这个过程虽然需要一些耐心但当你调出那条完美的曲线时所有的努力都是值得的。

相关新闻

NEURAL MASK 插件开发入门:为Qt桌面应用集成图像重构功能模块

NEURAL MASK 插件开发入门:为Qt桌面应用集成图像重构功能模块

NEURAL MASK 插件开发入门:为Qt桌面应用集成图像重构功能模块 你是不是在用Qt开发桌面应用时,遇到过这样的需求?用户上传了一张图片,但图片上有一些不需要的水印、文字或者瑕疵,你想在应用里直接提供一个“智能擦除”…

2026/5/17 9:06:56 阅读更多 →
SmolVLA多模态理解效果展示:复杂图文问答案例解析

SmolVLA多模态理解效果展示:复杂图文问答案例解析

SmolVLA多模态理解效果展示:复杂图文问答案例解析 最近在尝试各种多模态模型,发现了一个挺有意思的选手——SmolVLA。名字听起来挺“小巧”,但它在理解图片和文字结合的任务上,能力却一点也不小。简单来说,就是你给它…

2026/5/17 9:06:55 阅读更多 →
造相-Z-Image-Turbo LoRA 赋能网络安全:生成模拟人物头像用于隐私保护测试

造相-Z-Image-Turbo LoRA 赋能网络安全:生成模拟人物头像用于隐私保护测试

造相-Z-Image-Turbo LoRA 赋能网络安全:生成模拟人物头像用于隐私保护测试 最近和几个做安全测试的朋友聊天,他们提到一个挺头疼的事儿:在做一些涉及用户画像分析的测试,或者搭建模拟社交网络环境时,总需要大量的人物…

2026/7/3 7:34:31 阅读更多 →

最新新闻

一套方案跑通三大平台:YOLO全场景部署实战指南,附一键环境配置脚本

一套方案跑通三大平台:YOLO全场景部署实战指南,附一键环境配置脚本

做工业视觉落地的同行应该都有同感:训模型只是第一步,部署才是磨死人的开始。同一份YOLO权重,既要跑Windows产线上位机,又要部署Linux后台服务器,还要塞进Jetson边缘盒子,每个平台环境依赖不一样、推理引擎…

2026/7/5 17:03:07 阅读更多 →
MarkItDown:如何用Python统一处理数十种文档格式

MarkItDown:如何用Python统一处理数十种文档格式

MarkItDown:如何用Python统一处理数十种文档格式 【免费下载链接】markitdown Python tool for converting files and office documents to Markdown. 项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown 想象一下这样的场景:你的桌面…

2026/7/5 17:03:07 阅读更多 →
NVC多平台部署指南:Linux、macOS和Windows下的安装与配置

NVC多平台部署指南:Linux、macOS和Windows下的安装与配置

NVC多平台部署指南:Linux、macOS和Windows下的安装与配置 【免费下载链接】nvc VHDL compiler and simulator 项目地址: https://gitcode.com/gh_mirrors/nv/nvc NVC是一款开源的VHDL编译器和模拟器,支持VHDL-2008标准并具有出色的模拟性能。本指…

2026/7/5 17:03:07 阅读更多 →
3步掌握MinerU:构建智能文档解析系统的实战指南

3步掌握MinerU:构建智能文档解析系统的实战指南

3步掌握MinerU:构建智能文档解析系统的实战指南 【免费下载链接】MinerU Transforms complex documents like PDFs and Office docs into LLM-ready markdown/JSON for your Agentic workflows. 项目地址: https://gitcode.com/GitHub_Trending/mi/MinerU Mi…

2026/7/5 17:03:07 阅读更多 →
Thrift接口测试与性能分析:Team IDE的高级功能详解

Thrift接口测试与性能分析:Team IDE的高级功能详解

Thrift接口测试与性能分析:Team IDE的高级功能详解 【免费下载链接】teamide Team IDE 集成MySql、Oracle、金仓、达梦、神通等数据库、SSH、FTP、Redis、Zookeeper、Kafka、Elasticsearch、Mongodb、小工具等管理工具 项目地址: https://gitcode.com/gh_mirrors/…

2026/7/5 17:01:06 阅读更多 →
BTTV安卓版性能优化指南:提升应用流畅度的10个技巧

BTTV安卓版性能优化指南:提升应用流畅度的10个技巧

BTTV安卓版性能优化指南:提升应用流畅度的10个技巧 【免费下载链接】bttv A mod of the Twitch Android Mobile App adding BetterTTV, FrankerFaceZ and 7TV emotes 项目地址: https://gitcode.com/gh_mirrors/bt/bttv BTTV安卓版是一款为Twitch移动应用添加…

2026/7/5 16:59:06 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻