51单片机项目实战 -- 超声波智能泊车辅助系统
1. 从倒车雷达到智能泊车辅助你的第一个综合性单片机项目大家好我是老张一个玩了十多年单片机的“老电工”。今天想和大家聊一个特别有意思也特别有成就感的项目——用51单片机做一个超声波智能泊车辅助系统。你可能在很多教程里见过“倒车雷达”的案例无非是测个距、响个声。但咱们今天要做的绝对不止于此。我们要把它升级成一个集实时测距、多级声光报警、状态可视化显示于一体的“智能小助手”。想象一下这个场景你正在倒车入库车尾离墙越来越近。传统的倒车雷达可能只会“滴滴滴”地响声音急促但你得自己判断到底还有多远。而我们这个系统会通过流水灯带直观地告诉你距离——灯带从绿色安全逐渐变成红色危险蜂鸣器的“滴滴”声会从舒缓变得急促给你一个听觉上的梯度提醒同时一块小小的OLED屏幕上实时显示着精确到厘米的距离数字和当前的工作模式。是不是感觉一下子就专业起来了这个项目非常适合已经学过51单片机基础比如点亮LED、驱动蜂鸣器、使用定时器的初学者作为第一个综合性实战。它不复杂但几乎用到了你之前学过的所有知识点并且把它们有机地串联起来让你真正体会到“项目开发”的乐趣而不是孤立地调某个模块。我会手把手带你从模块选型、电路连接到代码的模块化编写一步步实现它。你会发现原来把这些零散的知识点组合起来能做出这么酷的东西。2. 项目核心模块与硬件连接把零件“拼”起来做任何电子项目第一步永远是搞清楚你要用哪些零件以及怎么把它们正确地连接到你的主控芯片上。咱们这个智能泊车辅助系统硬件清单非常精简都是市面上最常见、最便宜的模块但组合起来效果很棒。核心硬件清单主控芯片STC89C52RC。这是51单片机家族的经典款价格便宜资料丰富对我们这个项目来说性能绰绰有余。测距传感器HC-SR04超声波模块。这是绝对的主角负责测量车尾或者说我们的系统到障碍物的距离。它工作原理很简单发射超声波遇到障碍物反射回来通过计算发射和接收的时间差来算出距离。显示模块0.96英寸OLED显示屏I2C接口。选择I2C接口的版本是因为它只需要两根线SDA, SCL就能驱动节省单片机的IO口接线也清爽。声光报警装置听觉报警有源蜂鸣器。注意要买“有源”的给它一个高电平或低电平取决于你的电路就会持续响控制起来最简单。视觉报警8位LED流水灯模块。我们将用它做成一个模拟的“距离条”像进度条一样显示距离远近。交互控制4个独立按键。我们将用其中一个按键KEY1作为模式切换键比如切换显示模式或测试模式另外三个可以预留或用于其他功能设置。硬件连接示意图关键引脚定义连接的原则是尽量分散到不同的IO口避免冲突。下面是我在面包板上调试时的接法你可以参考模块引脚连接到STC89C52的引脚说明HC-SR04Trig (触发)P2.0单片机从这个脚发出10us的高脉冲触发测距Echo (回响)P2.1超声波模块从这个脚返回高电平脉冲其宽度代表距离OLED (I2C)SDA (数据)P2.2I2C数据线需要接上拉电阻模块通常自带SCL (时钟)P2.3I2C时钟线有源蜂鸣器信号线P2.4通过一个三极管或MOS管驱动直接接IO口可能驱动电流不够LED流水灯D1-D8P1.0 - P1.78个LED阴极接IO口阳极通过限流电阻接VCC按键 KEY1P3.2 (INT0)接外部中断0用于模式切换实现即时响应按键 KEY2P3.3普通IO口查询方式检测可用于功能A按键 KEY3P3.4普通IO口查询方式检测可用于功能B接线时的几个“坑”我帮你踩过了超声波模块的VCC最好接5V这样测距范围更远更稳定。Echo脚虽然是输出但也是5V电平直接接51单片机的P2.15V耐受没问题。OLED的I2C地址通常是0x78或0x7A购买时问清楚或者代码里两种都试一下。接线时SCL和SDA别忘了接上拉电阻虽然模块板子上可能有但自己再加一对4.7k到10k的上拉电阻到VCC会更稳定。蜂鸣器驱动千万别直接把蜂鸣器正极接IO口负极接地。51单片机的IO口拉电流能力很弱带不动蜂鸣器。正确做法是IO口接一个NPN三极管如8050的基极蜂鸣器接在集电极和VCC之间发射极接地。这样IO口只需要提供很小的基极电流就能控制蜂鸣器的大电流通断。按键消抖无论是中断里的按键还是查询的按键软件消抖延时10-20ms再判断是必须的否则你会看到按键一次触发了好几次动作。硬件连好后先别急着写代码。用万用表通断档检查一下有没有虚焊、短路特别是电源和地线。确保硬件平台扎实后面的软件调试才能事半功倍。3. 模块化编程思想像搭积木一样写代码很多新手朋友写这种多功能的项目代码容易把所有东西都堆在main函数的while(1)循环里结果就是代码又长又乱改一个功能可能牵一发而动全身。咱们这个项目我强烈推荐使用模块化编程。简单说就是给每个硬件模块写一个独立的“.c”源文件和对应的“.h”头文件让它们各司其职。为什么一定要模块化我举个例子。一开始你的超声波测距代码和OLED显示代码混在一起。后来你想把显示从OLED换成LCD1602或者想增加一个蓝牙模块把距离数据发到手机。如果是混写的代码你得在几千行的main.c里大海捞针找到所有和OLED相关的语句修改极易出错。而模块化之后你只需要替换或新增一个lcd1602.c或bluetooth.c文件然后在main.c里调用新的接口函数就行了其他测距、报警代码完全不用动。我们这个项目的模块划分可以这样设计ultrasonic.c / .h超声波测距模块。核心函数就两个一个发送触发信号并等待回波的GetEchoTime()一个将时间换算成厘米的CalculateDistance()。oled.c / .hOLED显示驱动。里面封装好初始化、清屏、显示字符、显示字符串、显示数字、显示汉字的函数。汉字需要提前用取模软件生成字库数组。buzzer.c / .h蜂鸣器驱动。提供Buzzer_Beep(duration_ms, interval_ms)这样的函数通过控制鸣叫时长和间隔时间来模拟不同频率。led_bar.c / .hLED灯条驱动。提供一个LED_DisplayDistance(float distance)函数内部根据距离远近决定点亮多少颗LED以及点亮什么颜色如果用的是RGB灯单色灯就用亮度或闪烁模式区分。key.c / .h按键扫描模块。包括外部中断初始化和普通按键的扫描函数。main.c主程序。它就像乐队的指挥只负责协调各个模块何时工作。它里面不应该出现直接操作P10xfe这样的底层代码而应该是LED_DisplayDistance(current_distance);这样的高层调用。在main.c中你的核心逻辑会变得非常清晰void main() { float distance; System_Init(); // 初始化所有模块定时器、中断、OLED、超声波等 while(1) { // 1. 核心任务测距 distance GetDistance(); // 2. 根据距离更新视觉报警LED灯条 UpdateLEDBar(distance); // 3. 根据距离更新听觉报警蜂鸣器频率 UpdateBuzzer(distance); // 4. 更新显示信息到OLED OLED_ShowDistance(distance); OLED_ShowAlertLevel(GetAlertLevel(distance)); // 5. 检测按键处理模式切换等交互 HandleKeyPress(); } }看是不是一目了然每个函数的功能都明确你想修改报警策略就去改UpdateBuzzer函数想改变显示布局就去改OLED_ShowDistance函数。这种结构对于调试、维护和后续功能扩展好处太大了。4. 核心测距与多级报警策略的实现逻辑硬件和框架搭好了现在我们来填充最核心的“大脑”——测距和报警逻辑。这是让项目从“玩具”变成“实用工具”的关键。超声波测距的稳定之道原始的超声波驱动代码就像你提供的RunOnce()函数是基础。但在实际项目中我强烈建议你加上超时处理和多次采样取平均。#define ULTRASONIC_TIMEOUT 30000 // 超时时间对应大约5米 unsigned int GetEchoTime(void) { unsigned int time 0; unsigned int timeout 0; Trig 1; Delay10us(); Trig 0; // 等待回波引脚变高并加入超时退出 while((Echo 0) (timeout ULTRASONIC_TIMEOUT)) { timeout; Delay10us(); } if(timeout ULTRASONIC_TIMEOUT) return 0; // 超时返回0表示出错 // 开始计时 TR0 1; TH0 0; TL0 0; timeout 0; // 等待回波引脚变低并加入超时 while((Echo 1) (timeout ULTRASONIC_TIMEOUT)) { timeout; Delay10us(); } TR0 0; if(timeout ULTRASONIC_TIMEOUT) return 0; time (TH0 8) | TL0; // 合成16位计时值 return time; } float GetStableDistance(void) { unsigned int time_array[5]; unsigned long sum 0; float distance; char i, valid_count 0; // 连续采样5次 for(i0; i5; i) { time_array[i] GetEchoTime(); if(time_array[i] 100 time_array[i] 25000) { // 过滤掉太近2cm和超时或太远(4m)的无效值 sum time_array[i]; valid_count; } delay_ms(60); // 两次测量间稍作延时防止余波干扰 } if(valid_count 0) return 999.9; // 返回一个错误值 distance ((float)(sum / valid_count)) * 0.017; // 单位厘米 return distance; }这样处理之后测得的距离值会稳定很多不会因为偶尔的干扰而跳动剧烈。分级报警策略——让反馈更有层次报警不是简单的“近就响远就不响”。一个好的辅助系统应该提供渐进的、直观的反馈。我们可以设计3-4个距离阈值区间。距离区间 (cm)报警级别LED灯条表现 (8颗灯)蜂鸣器表现说明 80安全全灭或第1颗灯慢速闪烁绿色静音距离很远无需报警50 - 80提示点亮1-3颗灯 (绿色)低频慢响 (如每秒1声“滴”)进入监测范围提示注意20 - 50警告点亮4-6颗灯 (黄色)中频鸣响 (如每秒2-3声“滴”)距离较近需要谨慎10 - 20危险点亮7-8颗灯 (红色)高频急响 (如每秒5-6声“滴滴滴”)距离很近需立即准备制动 10紧急全部LED快速闪烁红色长鸣或极高频率连续音即将碰撞必须立刻停止代码实现思路在main.c的循环中根据GetStableDistance()返回的值进入不同的case。#define LEVEL_SAFE 3 #define LEVEL_WARN 2 #define LEVEL_DANGER 1 #define LEVEL_CRITICAL 0 unsigned char GetAlertLevel(float dist) { if(dist 80.0) return LEVEL_SAFE; else if(dist 50.0) return LEVEL_SAFE; // 或者单独设一个LEVEL_INFO else if(dist 20.0) return LEVEL_WARN; else if(dist 10.0) return LEVEL_DANGER; else return LEVEL_CRITICAL; } void UpdateBuzzer(float dist) { unsigned char level GetAlertLevel(dist); switch(level) { case LEVEL_SAFE: // 蜂鸣器不响 BUZZER_OFF; break; case LEVEL_WARN: // 慢速响例如响200ms停800ms BUZZER_ON; delay_ms(200); BUZZER_OFF; delay_ms(800); break; case LEVEL_DANGER: // 中速响响200ms停300ms BUZZER_ON; delay_ms(200); BUZZER_OFF; delay_ms(300); break; case LEVEL_CRITICAL: // 快速响响100ms停100ms或者长鸣 BUZZER_ON; delay_ms(100); BUZZER_OFF; delay_ms(100); break; } }LED灯条的控制也是类似的switch-case逻辑通过控制P1端口输出不同的值来点亮不同数量的LED。你可以让点亮的LED数量与距离成反比距离越近点亮的LED越多压迫感就越强。5. OLED状态显示与系统交互设计OLED屏幕是我们这个系统的“仪表盘”它让所有信息一目了然极大地提升了项目的可玩性和实用性。显示内容需要精心设计既要信息全面又不能太杂乱。显示内容规划我们可以把小小的OLED屏幕分成几个区域来显示信息标题区第一行固定显示“泊车辅助”或“Parking Aid”。模式/状态区第二行显示当前系统模式比如“测距模式”或“设置模式”。当按键切换模式时这里会变化。数据主显示区第三、四行这是核心区域。用大字体显示实时距离例如“** 056 cm**”。在距离值旁边或下方可以用小图标或文字显示当前的报警级别比如一个感叹号“”或文字“警告”。辅助信息区可选如果还有空间可以显示一些辅助信息比如最近10秒内的最近距离记录或者蜂鸣器、LED的开关状态。汉字显示与取模在OLED上显示汉字需要先进行取模。使用PCtoLCD2002这类取模软件选择正确的取模方式通常是逐列式、顺向、高位在前具体要看你的OLED驱动库。把需要的汉字如“泊”、“车”、“辅”、“助”、“测”、“距”、“模”、“式”等生成字模数组放在一个头文件里比如font.h。然后在oled.c中编写一个OLED_ShowChinese(x, y, index)函数根据索引从数组里取出字模数据并显示。交互设计——用按键切换模式为了不让项目只是一个简单的报警器我们可以通过KEY1接外部中断来实现模式切换增加交互性。模式1正常工作模式。就是上面描述的全部功能自动测距、声光报警、OLED实时显示。模式2静音预览模式。关闭蜂鸣器只保留LED灯条和OLED显示。适合在安静环境下使用。模式3参数设置模式进阶。通过KEY2和KEY3来调整报警的距离阈值。比如进入这个模式后OLED提示“设置警告距离”然后按KEY2增加阈值KEY3减少阈值KEY1确认并退出。设置好的参数可以保存在单片机的EEPROM里STC89C52有内部EEPROM这样掉电也不会丢失。外部中断的代码框架如下bit sys_mode 0; // 0-模式A 1-模式B void EXTI0_Init(void) { IT0 1; // 设置外部中断0为下降沿触发 EX0 1; // 使能外部中断0 EA 1; // 开启总中断 } void main() { EXTI0_Init(); // ... 其他初始化 while(1) { if(sys_mode 0) { // 执行模式A的循环任务 } else { // 执行模式B的循环任务 } } } // 外部中断0服务函数 void exti0() interrupt 0 { delay_ms(15); // 消抖 if(KEY1 0) { sys_mode !sys_mode; // 切换模式标志位 OLED_ClearLine(1); // 清除模式显示行 if(sys_mode) { OLED_ShowChinese(0, 1, 5); // 显示“模式B” } else { OLED_ShowChinese(0, 1, 7); // 显示“模式A” } } while(KEY1 0); // 等待按键释放 }通过这样的设计你的项目就从一个静态的演示程序变成了一个可以交互、有一定可配置性的“产品原型”成就感完全不一样。6. 系统集成、调试与优化心得当所有模块的代码都准备好之后最后一步就是将它们集成到main.c中并开始调试。这个过程就像拼图可能会遇到各种问题但每解决一个你对系统的理解就深一层。集成与调试步骤分模块测试千万不要把所有代码一次性全写进去。先写超声波测距用printf通过串口如果单片机支持把距离值打印出来看或者让一个LED灯根据距离闪烁。确保测距基本准确稳定。加入显示测距OK后把OLED显示加上让距离数字能稳定地显示在屏幕上。这时你可能会发现屏幕刷新时有闪烁或者数字跳动。这可能是你刷新整个屏幕太频繁了。优化方法是局部刷新只更新距离数字变化的区域而不是每次都OLED_Clear()清屏再全屏重绘。加入声光报警接着加入LED灯条和蜂鸣器的控制逻辑。先用固定的距离值测试看每个阈值区间的LED点亮数量和蜂鸣器频率是否符合设计。加入按键交互最后加上按键扫描和模式切换功能。测试模式切换是否流畅显示是否正确更新。系统联调所有功能单独测试都没问题后进行整体测试。拿着超声波模块前后移动观察LED、蜂鸣器、OLED三者的变化是否同步、是否符合逻辑。特别注意在阈值边界比如正好50cm时报警状态切换是否平滑有没有出现频繁跳变。常见的“坑”与优化技巧资源冲突51单片机的中断资源有限。如果你用了定时器0给超声波做精确定时又用它来做蜂鸣器不同频率的延时可能会冲突。我的建议是超声波的高精度计时必须独占一个定时器如T0。蜂鸣器的延时可以用简单的delay_ms函数或者用另一个定时器T1产生不同占空比的PWM波来控制声音频率这样更优雅。系统响应速度while(1)循环里的任务越多执行一遍的时间循环周期就越长。这会导致你移动超声波模块时屏幕显示和报警响应有延迟。优化方法把非实时性的任务分开。比如测距必须每100ms执行一次但OLED显示可以每500ms更新一次。蜂鸣器报警判断放在测距之后立刻执行。按键扫描可以每20ms执行一次。合理分配能让系统更流畅。电源干扰蜂鸣器在鸣叫时尤其是那种电磁式有源蜂鸣器瞬间电流较大可能会引起电源电压的微小波动导致单片机复位或超声波模块工作异常。解决办法在蜂鸣器电源两端并联一个100μF的电解电容进行储能和滤波在单片机VCC和GND之间靠近芯片引脚处并联一个0.1μF的瓷片电容滤除高频干扰。阈值回差Hysteresis这是一个非常实用的软件技巧。当距离在阈值附近比如20cm波动时报警状态可能会在“警告”和“危险”之间疯狂切换导致LED和蜂鸣器频繁变化体验很差。我们可以设置一个回差从安全进入警告是distance 50cm但从警告恢复到安全则是distance 55cm。这样就有5cm的缓冲区间避免了临界点的抖动。当你一步步解决这些问题最终看到自己亲手制作的这个小系统能够稳定、清晰、有层次地为你报告后方距离时那种感觉真是太棒了。它不仅仅是一个课程设计或毕业设计你完全可以把它做成一个更精致的产品比如加个外壳、用锂电池供电放在你的自行车尾箱或者模型车上真正地用它来辅助“泊车”。

相关新闻

IDM试用期管理完全指南:从问题诊断到长效解决方案

IDM试用期管理完全指南:从问题诊断到长效解决方案

IDM试用期管理完全指南:从问题诊断到长效解决方案 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script 问题发现:IDM试用管理的核心挑战 在日…

2026/7/5 16:41:22 阅读更多 →
[ESP32]:基于esp_lcd_panel_draw_bitmap的字符动态绘制与缓存优化实践

[ESP32]:基于esp_lcd_panel_draw_bitmap的字符动态绘制与缓存优化实践

1. 从点阵到像素:理解字符绘制的本质 大家好,我是老张,在嵌入式显示这块摸爬滚打了十来年,从早期的单色屏玩到现在的彩屏,踩过的坑比写过的代码还多。今天咱们不聊那些高大上的图形库,就聚焦在ESP32上&…

2026/5/17 12:51:59 阅读更多 →
[技术解析] UCMCTrack:基于均匀相机运动补偿与地面投影的鲁棒多目标跟踪

[技术解析] UCMCTrack:基于均匀相机运动补偿与地面投影的鲁棒多目标跟踪

1. 从“晃动的镜头”说起:为什么传统多目标跟踪在相机运动时会“跟丢”? 大家好,我是老张,在AI和智能硬件这个行当里摸爬滚打了十几年,做过不少跟摄像头打交道的项目。不知道你们有没有过这样的体验:用手机…

2026/7/3 19:56:41 阅读更多 →

最新新闻

Claude Code 实战:AI 结对编程如何真正提效,从简历表达讲到项目复盘

Claude Code 实战:AI 结对编程如何真正提效,从简历表达讲到项目复盘

聊《Claude Code 实战:AI 结对编程如何真正提效,从简历表达讲到项目复盘》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要这篇面向正在评估 Claude Code 的开发者,但不会把“…

2026/7/6 0:39:26 阅读更多 →
PyTorch CRF 实战:BERT-CRF 命名实体识别 F1 值提升 5% 的 3 个关键点

PyTorch CRF 实战:BERT-CRF 命名实体识别 F1 值提升 5% 的 3 个关键点

PyTorch CRF 实战:BERT-CRF 命名实体识别 F1 值提升 5% 的 3 个关键点在自然语言处理领域,命名实体识别(NER)一直是一项基础而重要的任务。随着预训练语言模型如BERT的广泛应用,基于BERT的序列标注模型已成为NER的主流…

2026/7/6 0:37:25 阅读更多 →
终极指南:5分钟快速上手浏览器端人体姿态搜索工具

终极指南:5分钟快速上手浏览器端人体姿态搜索工具

终极指南:5分钟快速上手浏览器端人体姿态搜索工具 【免费下载链接】pose-search x6ud.github.io/pose-search 项目地址: https://gitcode.com/gh_mirrors/po/pose-search 想要在浏览器中实现专业级的人体姿态识别与动作搜索功能吗?pose-search是一…

2026/7/6 0:37:25 阅读更多 →
74HC32与PIC18F45K50实现高效键盘管理方案

74HC32与PIC18F45K50实现高效键盘管理方案

1. 为什么需要74HC32配合PIC18F45K50管理键盘?在嵌入式系统设计中,IO资源永远是稀缺品。传统2x2矩阵键盘需要占用4个IO口(2行2列),而采用74HC32或门芯片后,仅需2个IO即可实现4个按键的独立检测——这正是该…

2026/7/6 0:35:25 阅读更多 →
openEuler/QoS-Deployment-Test:从零开始编写自定义测试用例的完整指南

openEuler/QoS-Deployment-Test:从零开始编写自定义测试用例的完整指南

openEuler/QoS-Deployment-Test:从零开始编写自定义测试用例的完整指南 【免费下载链接】QoS-Deployment-Test Docker-based openEuler Online-Offline Co-scheduling Test Suite. 项目地址: https://gitcode.com/openeuler/QoS-Deployment-Test 前往项目官网…

2026/7/6 0:35:25 阅读更多 →
故障复盘——让失败“变成财富“

故障复盘——让失败“变成财富“

故障复盘——让失败"变成财富" 你有没有过考试错题本? 生活场景:错题本的作用 没有错题本 你考试考砸了: 错了3道题 订正了 忘了为什么错 下次考类似的,还是错 没有复盘,错误会重复。 有错题本 你考试考砸了: 错题记到本子上 分析错误原因 总结解题方法 …

2026/7/6 0:35:25 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

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 阅读更多 →

月新闻