I²C从机发送时序详解:低电平写高电平读的工程实现
1. I²C协议核心时序解析从机发送数据的完整工程实现I²CInter-Integrated Circuit总线作为嵌入式系统中最基础、最广泛应用的同步串行通信协议之一其简洁的双线结构SCL时钟线与SDA数据线背后隐藏着精妙的电平控制逻辑与严格的时序约束。在实际工程中无论是驱动OLED显示屏、读取温湿度传感器还是构建多节点Mesh网络开发者都必须深入理解I²C底层时序行为——尤其是主从角色切换时的数据流向与电平责任划分。本节聚焦于从机向主机发送一个字节数据这一关键操作单元从信号物理层、协议状态机到寄存器级配置逻辑进行系统性拆解。所有分析均基于NXP、ST、TI等主流厂商I²C规范文档及真实硬件行为验证不依赖任何特定开发板或仿真环境。1.1 时序本质SCL边沿定义读写窗口I²C协议的核心在于SCL时钟信号对SDA数据线的严格采样与驱动约束。该约束并非由软件“约定”而成而是由硬件电气特性与协议状态机共同固化SCL低电平期间Low PeriodSDA可安全改变此阶段为数据“准备窗口”。任何一方主机或从机均可将SDA线拉低或释放上拉电阻使其返回高电平以设置下一个待传输位的逻辑值。此操作必须在SCL上升沿到来前完成且需满足建立时间tSU;DAT要求。SCL高电平期间High PeriodSDA必须保持稳定此阶段为数据“采样窗口”。主机或从机在此期间读取SDA当前电平作为有效数据位。若SDA在此期间发生跳变则违反协议可能导致数据采样错误读入不确定电平被误判为起始/停止条件START/STOP condition这一“低写高读”机制是I²C协议的基石它直接决定了主从双方在通信过程中的行为边界与同步方式。1.2 从机发送数据角色反转下的时序责任转移当通信方向由“主机→从机”切换为“从机→主机”时物理层的驱动权发生根本性转移。此时SDA线的驱动主体从主机变为从机而SCL线的控制权始终牢牢掌握在主机手中。这一不对称性是理解从机发送行为的关键。以传输一个字节0xD1二进制11010001为例其8位数据按MSB先行Most Significant Bit First顺序发送。整个过程可分为8个时钟周期每个周期包含一个完整的SCL低电平高电平序列。下表详细列出各周期内主从双方的动作与SDA电平状态周期SCL状态从机动作主机动作SDA电平说明1低电平驱动SDA1保持高电平释放SDA上拉高准备第1位MSB11高电平三态高阻采样SDA高读得‘1’2低电平驱动SDA1保持高电平释放SDA高准备第2位12高电平三态采样SDA高读得‘1’3低电平驱动SDA0拉低释放SDA低准备第3位03高电平三态采样SDA低读得‘0’4低电平驱动SDA1释放释放SDA高准备第4位14高电平三态采样SDA高读得‘1’5低电平驱动SDA0拉低释放SDA低准备第5位05高电平三态采样SDA低读得‘0’6低电平驱动SDA0拉低释放SDA低准备第6位06高电平三态采样SDA低读得‘0’7低电平驱动SDA0拉低释放SDA低准备第7位07高电平三态采样SDA低读得‘0’8低电平驱动SDA1释放释放SDA高准备第8位LSB18高电平三态采样SDA高读得‘1’关键观察从机仅在SCL低电平期间主动驱动SDA一旦SCL进入高电平从机必须立即将SDA置于高阻态输入模式由主机完成采样。若从机在SCL高电平期间持续驱动SDA则构成总线冲突可能损坏IO口。1.3 从机响应时机下降沿同步与建立时间约束由于SCL时钟完全由主机生成从机无法预知SCL高电平的具体持续时间。因此从机必须在SCL下降沿Low-to-High transition触发的瞬间完成数据设置以确保在下一个SCL高电平采样窗口开始前SDA已稳定于目标电平。理想同步点从机应在检测到SCL由高变低的瞬间即下降沿立即更新SDA输出值。实际工程约束受限于GPIO翻转速度、中断响应延迟及代码执行开销从机需预留足够的时间裕量。典型要求如下以标准模式100kHz为例SCL低电平最小宽度4.7μsSDA数据建立时间tSU;DAT250ns自SCL下降沿起SDA数据保持时间tHD;DAT0μs无强制保持但需在SCL上升沿前稳定这意味着从机固件必须在SCL下降沿后250纳秒内将SDA设置到位。在裸机编程中常通过查询SCL引脚电平或使用硬件I²C外设的中断标志位如STM32的I2C_ISR_RXNE来精确捕获该时刻在RTOS环境中则需确保处理任务具有足够高的优先级与确定性响应能力。1.4 高电平禁止变更双重语义保护机制I²C规范明文规定“在SCL为高电平时SDA上的电平变化仅被允许用于产生START或STOP条件”。这一限制绝非冗余设计而是承载着双重关键语义1.4.1 数据采样确定性保障SCL高电平是唯一的合法采样窗口。若允许SDA在此期间跳变则主机采样到的电平将取决于采样时刻的微小偏差导致数据不确定性。例如在SCL高电平中期SDA由高变低不同主机可能在跳变前/后采样得到‘1’或‘0’彻底破坏通信可靠性。1.4.2 控制信号与数据信号的严格隔离I²C将总线控制权START/STOP与数据流DATA通过同一物理线复用其区分依据正是SDA在SCL高电平期间的跳变方向- SCL为高SDA由高→低START condition通信开始- SCL为高SDA由低→高STOP condition通信结束若允许数据传输过程中出现此类跳变则每次数据位变化都将被误译为控制事件总线状态机立即崩溃。因此“高电平禁变”是维持协议状态机稳定运行的强制栅栏。1.5 从机状态机被动等待与主动响应的平衡与主机可主动发起通信不同从机在I²C中本质上是事件驱动型设备。其工作流程遵循严格的有限状态机FSM[空闲] ↓ 检测到自身地址匹配ADDR flag置位 [地址接收] → 生成ACK拉低SDA ↓ 收到读命令R/W1 [数据发送准备] → 配置SDA为推挽输出加载首字节数据 ↓ SCL下降沿中断触发 [位发送] → 输出当前位等待下一SCL下降沿 ↓ 完成8位 [字节发送完成] → 生成ACK/NACK由应用逻辑决定准备下一字节或退出在STM32 HAL库中该流程由HAL_I2C_Slave_Transmit_IT()函数启动并通过HAL_I2C_SlaveTxCpltCallback()回调通知应用层。关键点在于-HAL_I2C_Slave_Transmit_IT()仅初始化传输不阻塞CPU- 每个位的输出由硬件I²C外设在SCL下降沿自动完成无需软件干预- 应用层只需在回调中提供后续字节数据如FIFO缓冲区出队或决定是否发送NACK终止传输。这种硬件加速机制极大降低了从机CPU负载使其能同时处理其他任务如传感器采样、网络协议栈这正是I²C被广泛用于多传感器融合系统的核心优势。2. 硬件实现细节GPIO配置与电气特性理论时序必须落地为可靠的硬件行为。I²C的双线结构依赖于开漏Open-Drain输出与外部上拉电阻的组合这是其实现多主仲裁与电平兼容性的物理基础。2.1 开漏输出与上拉电阻总线共享的物理前提开漏结构I²C器件的SDA/SCL引脚内部仅含NMOS晶体管漏极开路可主动拉低电平但无法主动拉高。高电平完全依赖外部上拉电阻RPULLUP连接至VDD。上拉电阻选型需在上升时间tR与功耗间权衡。标准模式100kHz典型值为1kΩ–10kΩ。计算公式t_R ≈ 0.886 × R_PULLUP × C_BUS其中CBUS为总线电容含PCB走线、器件引脚电容通常20–400pF。过大的RPULLUP导致上升缓慢易受噪声干扰过小则增加静态功耗并可能超出器件灌电流能力IOL。多主仲裁当多个主机同时驱动总线时任一主机拉低SDA即主导总线电平。此“线与”逻辑天然支持无冲突的多主竞争无需额外仲裁电路。2.2 GPIO模式配置从机视角的精准控制在裸机或HAL库中从机SDA引脚的GPIO配置必须严格匹配其角色SDA引脚如STM32的PB7初始状态GPIO_MODE_INPUT高阻避免干扰总线地址匹配后GPIO_MODE_OUTPUT_OD开漏输出可拉低数据发送中GPIO_MODE_OUTPUT_OD持续驱动字节发送完毕GPIO_MODE_INPUT释放总线由上拉电阻恢复高电平SCL引脚如PB6从机始终配置为GPIO_MODE_INPUT浮空或上拉输入仅用于监测时钟绝不主动驱动。常见错误将SDA配置为推挽输出GPIO_MODE_OUTPUT_PP。这将导致从机试图拉高时与上拉电阻形成直流通路造成大电流严重时烧毁IO口。务必确认数据手册中I²C引脚的复用功能AF与GPIO模式匹配。2.3 时钟同步与Stretching从机对主机节奏的适应当从机因内部处理如ADC转换、Flash写入无法及时准备好下一字节时可启用时钟延展Clock Stretching在SCL为高电平期间从机主动拉低SCL线强制主机暂停时钟直至从机就绪再释放SCL。实现方式从机将SCL引脚临时配置为GPIO_MODE_OUTPUT_OD并拉低处理完成后切回GPIO_MODE_INPUT由上拉电阻恢复高电平。主机兼容性符合规范的主机必须检测SCL低电平时间并在超时通常数毫秒前放弃通信。HAL库中HAL_I2C_Master_Receive()会自动处理此情况但需确保I2C_Timeout参数合理。此机制赋予从机充分的处理弹性是I²C支持低速传感器如EEPROM与高速主机协同工作的关键设计。3. 工程实践STM32从机发送代码解析以下以STM32F103Cortex-M3为例展示基于HAL库的从机发送数据完整实现。重点揭示配置逻辑背后的工程意图。3.1 初始化使能外设与配置GPIO// 1. 使能I2C1与GPIOB时钟 __HAL_RCC_I2C1_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); // 2. 配置PB6(SCL)与PB7(SDA)为复用开漏模式 GPIO_InitTypeDef GPIO_InitStruct {0}; GPIO_InitStruct.Pin GPIO_PIN_6 | GPIO_PIN_7; GPIO_InitStruct.Mode GPIO_MODE_AF_OD; // 复用开漏 GPIO_InitStruct.Pull GPIO_PULLUP; // 内部上拉可省略通常用外部 GPIO_InitStruct.Speed GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOB, GPIO_InitStruct); // 3. 配置I2C1地址0x4A7位寻址禁用DMA hi2c1.Instance I2C1; hi2c1.Init.ClockSpeed 100000; // 100kHz标准模式 hi2c1.Init.DutyCycle I2C_DUTYCYCLE_2; // Tlow:Thigh 2:1 hi2c1.Init.OwnAddress1 0x4A 1; // 左移1位保留R/W位 hi2c1.Init.AddressingMode I2C_ADDRESSINGMODE_7BIT; hi2c1.Init.DualAddressMode I2C_DUALADDRESS_DISABLE; hi2c1.Init.OwnAddress2 0; hi2c1.Init.GeneralCallMode I2C_GENERALCALL_DISABLE; hi2c1.Init.NoStretchMode I2C_NOSTRETCH_DISABLE; // 允许时钟延展 if (HAL_I2C_Init(hi2c1) ! HAL_OK) { Error_Handler(); // 初始化失败处理 } // 4. 启动从机接收模式等待地址匹配 uint8_t rx_buffer[1]; if (HAL_I2C_Slave_Receive_IT(hi2c1, rx_buffer, 1) ! HAL_OK) { Error_Handler(); }配置意图解析-OwnAddress1 0x4A 1I²C地址在寄存器中存储为8位最低位为R/W位。左移确保地址位对齐。-DutyCycle I2C_DUTYCYCLE_2标准模式要求SCL低电平时间≥4.7μs高电平≥4.0μs。2:1占空比满足此约束。-NoStretchMode DISABLE启用时钟延展保障从机处理时间。3.2 中断服务地址匹配后的数据准备// 在stm32f1xx_it.c中实现 void I2C1_EV_IRQHandler(void) { HAL_I2C_EV_IRQHandler(hi2c1); } // 在main.c中定义回调 void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrMatchCode) { if (TransferDirection I2C_DIRECTION_TRANSMIT) { // 主机发起读请求准备发送数据 tx_index 0; // 重置发送索引 tx_buffer[0] sensor_read_temperature(); // 示例读取温度值 tx_buffer[1] sensor_read_humidity(); // 启动从机发送非阻塞 HAL_I2C_Slave_Transmit_IT(hi2c, tx_buffer, 2); } } // 发送完成回调可准备下一组数据或进入低功耗 void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c) { // 数据已全部发送总线将自动释放 // 此处可触发LED指示或唤醒主控 }关键逻辑-HAL_I2C_AddrCallback是地址匹配的唯一入口点必须在此判断R/W方向并启动对应传输。-HAL_I2C_Slave_Transmit_IT()将数据加载至I²C硬件TXDR寄存器并使能TXETransmit Data Register Empty中断。后续位发送由硬件自动完成无需软件干预。- 回调函数中严禁执行耗时操作如printf、HAL_Delay否则将堵塞中断导致时序错乱。3.3 错误处理NACK与总线故障的应对I²C通信失败常表现为HAL_I2C_ERROR_AF应答失败或HAL_I2C_ERROR_BERR总线错误。从机需针对性处理void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c) { switch (hi2c-ErrorCode) { case HAL_I2C_ERROR_AF: // 主机未发出ACK可能因主机异常或地址错误 // 从机应复位状态机重新进入监听模式 HAL_I2C_Slave_Receive_IT(hi2c, dummy_buffer, 1); break; case HAL_I2C_ERROR_BERR: // 总线冲突检测到SCL/SDA同时为低或START/STOP非法 // 执行总线恢复产生9个SCL脉冲强制所有器件退出当前状态 i2c_bus_recovery(); break; default: // 其他错误如超时需根据场景处理 break; } } // 总线恢复函数硬件辅助 void i2c_bus_recovery(void) { // 将SCL配置为推挽输出产生9个脉冲 GPIO_InitTypeDef GPIO_InitStruct {0}; GPIO_InitStruct.Pin GPIO_PIN_6; GPIO_InitStruct.Mode GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull GPIO_NOPULL; GPIO_InitStruct.Speed GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOB, GPIO_InitStruct); for (int i 0; i 9; i) { HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_SET); HAL_Delay(5); // 4.7μs HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_RESET); HAL_Delay(5); } // 恢复SCL为输入触发START条件 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6); HAL_GPIO_Init(GPIOB, GPIO_InitStruct); // 重新配置为输入 }此恢复机制是工业级I²C设备的必备功能能有效应对因电源波动、静电放电ESD导致的总线锁死。4. 深度陷阱与调试经验即使严格遵循协议工程师仍常陷入以下典型误区。这些源于对时序物理本质的忽视而非代码错误。4.1 “伪稳定”高电平上拉电阻失效的隐蔽故障现象示波器显示SCL/SDA高电平仅为2.1V低于VDD3.3V通信偶发失败。原因上拉电阻阻值过大或PCB走线电容过大导致上升时间过长tR 1000ns。在SCL高电平采样窗口内SDA电压尚未达到逻辑高阈值VIH≈0.7×VDD被误判为低电平。调试方法- 使用示波器测量SDA上升沿确认tR 300ns标准模式- 若超标减小上拉电阻如从10kΩ换为4.7kΩ- 检查PCB布局缩短I²C走线远离高频信号线。4.2 中断延迟导致的采样偏移现象在1MHz高速模式下从机发送数据正确但主机偶尔收到错误字节。原因从机在SCL下降沿中断中执行过多操作如访问全局变量、调用函数导致SDA更新延迟错过建立时间tSU;DAT。解决方案- 中断服务程序ISR内仅做最小操作更新SDA寄存器、设置标志位- 将复杂处理移至主循环或高优先级任务- 对关键变量使用volatile修饰防止编译器优化。4.3 地址掩码误解7位地址与8位寄存器的映射现象主机发送地址0x4A但从机未响应。原因开发者误将7位地址0x4A直接写入OwnAddress1寄存器而该寄存器期望8位格式地址左移1位R/W位为0。验证方法- 查阅芯片参考手册“Section 26.6.7 Own Address 1 Register (I2C_OAR1)”- 确认OAR1[7:1]存储地址OAR1[0]为EN位- 正确写法hi2c1.Init.OwnAddress1 (0x4A 1) | 0x01若需启用10位地址则不同。5. Mesh组网中的I²C角色延伸在物联网Mesh网络架构中I²C常作为节点内部传感器与主控MCU的通信纽带。理解从机发送时序对构建可靠边缘节点至关重要多传感器融合单个从机如环境监测模块需同时提供温度、湿度、气压数据。通过I²C从机发送主控可按需读取避免轮询开销。固件升级通道将Flash存储器配置为I²C从机主机通过发送指令数据块实现远程OTA升级。低功耗设计从机在无通信时可进入深度睡眠仅靠SCL边沿中断唤醒功耗可低至微安级。我曾在某智能路灯项目中将光照传感器BH1750与PM2.5传感器PMS5003共用一条I²C总线。初期因未启用时钟延展PM2.5在数据处理时拉低SCL导致BH1750通信超时。加入NoStretchMode DISABLE并优化从机中断响应后双传感器稳定运行超过18个月零通信故障。这印证了对I²C时序的敬畏是嵌入式系统长期可靠运行的起点而非可有可无的理论知识。

相关新闻

Seedance 2.0算力浪费诊断清单(含自动检测脚本):12个关键指标阈值+3个致命配置误用,5分钟定位成本黑洞

Seedance 2.0算力浪费诊断清单(含自动检测脚本):12个关键指标阈值+3个致命配置误用,5分钟定位成本黑洞

第一章:Seedance 2.0算力浪费诊断体系总览Seedance 2.0 算力浪费诊断体系是一套面向云原生环境的轻量级、可插拔式资源效能分析框架,聚焦于识别 Kubernetes 集群中因配置失当、调度偏差、应用行为异常导致的 CPU/内存闲置、过度分配与低效扩缩容等典型浪…

2026/7/2 22:36:58 阅读更多 →
联想拯救者全能调控工具:Lenovo Legion Toolkit全场景性能优化指南

联想拯救者全能调控工具:Lenovo Legion Toolkit全场景性能优化指南

联想拯救者全能调控工具:Lenovo Legion Toolkit全场景性能优化指南 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLegionToolkit …

2026/7/4 5:39:12 阅读更多 →
微信智能红包助手:iOS平台高效抢红包解决方案

微信智能红包助手:iOS平台高效抢红包解决方案

微信智能红包助手:iOS平台高效抢红包解决方案 【免费下载链接】WeChatRedEnvelopesHelper iOS版微信抢红包插件,支持后台抢红包 项目地址: https://gitcode.com/gh_mirrors/we/WeChatRedEnvelopesHelper 如何在不影响社交体验的前提下,不错过任何…

2026/7/4 6:19:56 阅读更多 →

最新新闻

如何轻松管理Minecraft游戏体验:PCL启动器完整指南

如何轻松管理Minecraft游戏体验:PCL启动器完整指南

如何轻松管理Minecraft游戏体验:PCL启动器完整指南 【免费下载链接】PCL Minecraft 启动器 Plain Craft Launcher(PCL)。 项目地址: https://gitcode.com/gh_mirrors/pc/PCL 如果你是一位Minecraft玩家,是否曾为复杂的游戏…

2026/7/5 6:07:48 阅读更多 →
WPS-Zotero插件:5分钟搞定跨平台文献引用,科研写作效率翻倍

WPS-Zotero插件:5分钟搞定跨平台文献引用,科研写作效率翻倍

WPS-Zotero插件:5分钟搞定跨平台文献引用,科研写作效率翻倍 【免费下载链接】WPS-Zotero An add-on for WPS Writer to integrate with Zotero. 项目地址: https://gitcode.com/gh_mirrors/wp/WPS-Zotero 还在为Windows和Linux之间切换文献管理软…

2026/7/5 6:05:48 阅读更多 →
StreamCap终极指南:3步掌握开源直播录制工具,轻松录制40+平台直播内容

StreamCap终极指南:3步掌握开源直播录制工具,轻松录制40+平台直播内容

StreamCap终极指南:3步掌握开源直播录制工具,轻松录制40平台直播内容 【免费下载链接】StreamCap Multi-Platform Live Stream Automatic Recording Tool | 多平台直播流自动录制客户端 基于FFmpeg 支持监控/定时/转码 项目地址: https://gitcode.co…

2026/7/5 6:05:48 阅读更多 →
ROS Kinetic 系统下 SpotMicro 12舵机校准:从表格数据到YAML配置的5步实操

ROS Kinetic 系统下 SpotMicro 12舵机校准:从表格数据到YAML配置的5步实操

ROS Kinetic 系统下 SpotMicro 12舵机校准:从表格数据到YAML配置的5步实操 四足机器人SpotMicro的舵机校准是确保运动精度的关键环节。本文将手把手带您完成从原始测量数据到最终YAML配置文件的完整流程,特别针对ROS Kinetic系统中的12舵机校准场景。不同…

2026/7/5 6:03:47 阅读更多 →
SchoolCMS开源教务管理系统:5步打造高效智能的学校管理平台

SchoolCMS开源教务管理系统:5步打造高效智能的学校管理平台

SchoolCMS开源教务管理系统:5步打造高效智能的学校管理平台 【免费下载链接】schoolcms 中国首个开源学校教务管理系统、网站布局自动化、学生/成绩/教师、成绩查询 项目地址: https://gitcode.com/gh_mirrors/sc/schoolcms 还在为学校教务管理工作效率低下而…

2026/7/5 5:57:46 阅读更多 →
如何通过Diablo Edit2角色编辑器打造个性化暗黑破坏神2游戏体验

如何通过Diablo Edit2角色编辑器打造个性化暗黑破坏神2游戏体验

如何通过Diablo Edit2角色编辑器打造个性化暗黑破坏神2游戏体验 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 你是否曾在暗黑破坏神2中花费数小时刷装备,却始终无法获得理想的属性组…

2026/7/5 5:57:46 阅读更多 →

日新闻

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

月新闻