自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1557)
  • 收藏
  • 关注

原创 STM32本地离线TTS语音合成实现原理与工程实践

语音合成(TTS)是将文本实时转换为可听语音的关键技术,其核心在于声学建模与波形生成的协同。在嵌入式系统中,本地离线TTS摆脱了网络依赖与隐私风险,依托参数化共振峰合成、Q15定点运算和DMA驱动音频流等技术,实现在资源受限MCU上的低延迟、高确定性语音输出。该方案强调硬件时钟解耦、中断优先级调度与静态内存管理,适用于桌面宠物、工业HMI等对实时性与可靠性要求严苛的场景。本文聚焦STM32平台下的端到端落地路径,涵盖文本预处理、Formant建模、双缓冲DMA波形生成及FreeRTOS协同设计。

2026-02-09 16:36:06 380

原创 STM32嵌入式分块式内存管理原理与实战

嵌入式内存管理是资源受限系统中保障实时性与可靠性的核心技术,其本质是在确定性(如最坏执行时间WCET)与动态灵活性之间寻求工程平衡。传统malloc因碎片化、时序不可控而难以满足硬实时需求,分块式内存管理通过固定大小内存块划分与轻量级管理表设计,实现O(1)地址映射、可预测分配/释放、零运行时碎片等关键优势。该方案广泛应用于STM32等Cortex-M微控制器的FreeRTOS任务、LCD文件系统、音频缓冲等场景,尤其适合对中断响应(如100μs级ADC处理)、DMA对齐(64字节)和长期稳定运行有严苛要求

2026-02-09 16:06:00 437

原创 STM32 USB虚拟串口(VCP)原理与CDC驱动实战

USB虚拟串口(VCP)是基于USB通信设备类(CDC)协议实现的串口抽象技术,通过在USB总线上模拟RS-232语义,将传统UART的波特率、数据位等参数映射为USB控制传输请求。其核心在于协议栈下沉与接口抽象,使嵌入式设备无需电平转换芯片即可提供标准COM端口。该技术具备热插拔、高带宽(理论48 Mbps)、跨平台兼容等优势,广泛应用于固件升级、调试日志、指令交互等嵌入式开发场景。结合STM32 USB外设硬件架构与CDC ACM驱动移植,可构建稳定可靠的USB转串口通道,是嵌入式系统软硬协同的关键实践

2026-02-09 15:41:37 384

原创 STM32定时器原理与实战:从1秒中断到PWM呼吸灯

定时器是嵌入式系统实现精确时间控制、PWM调光、脉宽测量和电机驱动的核心外设。其本质是一套基于时钟源、预分频器(PSC)与自动重装载寄存器(ARR)协同工作的计数引擎,通过溢出事件触发中断或更新输出。理解72MHz定时器时钟倍频机制、PSC/ARR二维参数对定时精度与范围的权衡、以及影子寄存器保障的更新同步性,是工程落地的前提。在STM32F103等Cortex-M3芯片上,通用定时器(TIM2–TIM4)支撑LED闪烁、传感器采样等基础任务,而高级定时器(TIM1)则提供互补输出与死区插入等电机控制关键能

2026-02-09 15:39:40 590

原创 MPU-6050底层驱动开发:寄存器配置与欧拉角输出实战

惯性测量单元(IMU)是姿态解算与运动控制的核心传感器,其原始数据需经精确寄存器配置、I²C通信、16位数据合成及物理量转换才能转化为可用角度信息。理解MPU-6050的电源管理、采样率分频、DLPF滤波器带宽与量程配置原理,是保障陀螺仪零偏稳定性和加速度计抗饱和能力的技术前提。通过WHO_AM_I校验、PWR_MGMT_1唤醒、SMPLRT_DIV与CONFIG寄存器协同设置,可构建高鲁棒性嵌入式驱动;结合互补滤波实现欧拉角实时输出,广泛适用于无人机飞控、智能穿戴与机器人平衡系统。本文聚焦寄存器级工程实践

2026-02-09 15:11:44 62

原创 STM32 EXTI外部中断原理与HAL工程实践

EXTI(外部中断)是嵌入式系统中实现事件驱动响应的核心机制,其本质是通过GPIO引脚电平变化触发NVIC中断请求,从而摆脱轮询带来的CPU占用高、响应延迟大、功耗高等问题。工作原理涵盖触发源配置(AFIO映射+边沿选择)、NVIC优先级仲裁(抢占/子优先级分组)及中断服务执行(寄存器自动保存/恢复)。技术价值在于提升实时性、降低功耗并支持多任务协同;典型应用场景包括按键检测、传感器唤醒、低功耗唤醒等。本文围绕STM32 HAL库,深入解析EXTI0/EXTI1的硬件绑定、中断嵌套、消抖策略与调试方法,覆盖

2026-02-09 15:03:08 422

原创 STM32 USART串行通信原理与实战详解

串行通信是嵌入式系统中最基础的数据传输方式,其核心在于通过单线(或差分线)按时间顺序逐位传输数据,以换取布线简洁、抗干扰强和远距离传输能力。其工作原理依赖于波特率同步、帧结构约定(起始位、数据位、校验位、停止位)以及电平标准(如TTL、RS-232、RS-485)的物理层适配。技术价值体现在资源占用少、拓扑灵活、易于集成,广泛应用于传感器通信、调试接口、工业总线和人机交互等场景。本文深入剖析STM32 USART硬件架构、异步全双工机制、中断与DMA驱动模型,并结合正点原子开发板完成从寄存器级理解到HAL库

2026-02-09 14:48:08 409

原创 STM32 GPIO按键输入与硬件消抖原理实战

GPIO输入是嵌入式系统最基础的外设交互方式,其核心在于理解电平采样背后的物理机制与电气约束。机械按键存在接触抖动与释放抖动,典型持续5–20ms,若不处理将导致误触发;而上拉输入模式通过外部/内部电阻确保空闲态电平稳定,是抗干扰设计的关键起点。在STM32F103等Cortex-M3平台中,正确配置时钟使能、引脚上下拉及输入模式,是避免浮空误读和中断失效的前提。软件层面需结合非阻塞状态机实现精准消抖,并融入BSP分层架构以提升可移植性。本文围绕按键这一典型GPIO输入场景,系统解析从硬件特性、寄存器配置到

2026-02-09 14:41:27 414

原创 FreeRTOS入门:裸机到实时操作系统的工程跃迁

实时操作系统(RTOS)是嵌入式系统实现确定性响应与多任务并发的核心技术基础。其本质在于通过抢占式调度、任务隔离与时间片管理,解决裸机开发中轮询架构导致的优先级缺失、时序失控与扩展瓶颈等问题。FreeRTOS凭借轻量内核、MIT许可和STM32高兼容性,成为工业控制、IoT终端等资源受限场景的首选RTOS方案。结合HAL库集成时,需重点关注SysTick冲突规避、中断安全API使用、优先级继承配置及栈溢出防护等关键实践。本文围绕STM32平台,深入解析任务状态机、上下文切换机制与生产级调试方法,助力工程师构

2026-02-09 13:57:27 472

原创 ESP8266双轴云台控制系统设计与实时运动控制实现

舵机控制是嵌入式机器人运动执行的基础技术,其核心在于PWM信号生成、角度-占空比非线性映射及实时闭环调节。基于ESP8266的舵机驱动需克服原生无硬件PWM、GPIO驱动能力弱、电源耦合干扰等工程瓶颈,依赖ledc模块高精度定时、光耦隔离+MOSFET功率驱动、nvs动态校准表等关键技术。该方案不仅支撑桌面宠物的拟人化行为(如语音响应、随机状态机、平滑过渡),更可扩展为通用机器人头部平台,兼容视觉跟踪、触觉反馈与多模态协同。文中深度融合FreeRTOS任务调度、限位安全中断、运动学标定等实践要点,面向量产级

2026-02-09 13:52:16 404

原创 STM32F1 ADC工程实践:分辨率、精度与温度传感器校准

模数转换(ADC)是嵌入式系统连接物理世界与数字处理的核心环节,其本质是将连续模拟信号按量化规则映射为离散数字值。理解ADC的分辨率(位宽决定的理论分辨能力)与精度(受INL/DNL、偏置/增益误差、电源噪声、温度漂移等综合影响的实际测量可靠性)之区别,是避免读数漂移、跳变等典型故障的前提。在STM32F1平台中,ADC精度高度依赖VDDA供电稳定性、参考电压质量及采样时间配置,而内部温度传感器等特殊通道更需结合校准参数(如V25、Avg_Slope)进行电压-温度换算。本文围绕电位器电压采集与芯片温度读取

2026-02-09 12:38:09 432

原创 ESP8266-01S双舵机云台控制系统设计(离线语音+RTC随机行为)

嵌入式云台控制系统是智能交互设备的核心执行单元,其本质是通过微控制器协调多路PWM输出与外设通信,实现空间姿态的精确调控。原理上依赖GPIO时序驱动、中断响应机制与低功耗状态管理,在资源受限平台(如ESP8266)中需权衡实时性、内存占用与供电稳定性。技术价值体现在低成本、离线化、可量产三大工程优势,广泛应用于桌面宠物、教育机器人、IoT原型开发等场景。本文聚焦ESP8266-01S平台,详解双舵机云台的硬件隔离设计、软件模拟PWM实现、本地语音指令解析及基于RTC寄存器的确定性随机行为引擎,覆盖从GPIO

2026-02-09 11:58:18 451

原创 STM32云台控制实战:PWM精度、语音联动与低功耗设计

舵机云台是嵌入式人机交互系统的关键执行单元,其本质是基于PWM信号的角度闭环控制系统。理解定时器时钟树配置、脉宽分辨率计算与死区平滑策略,是实现精准静音运动的基础原理;结合语音识别模块(如ESP8266)构建指令解析状态机,可赋予设备自然响应能力;而通过FreeRTOS任务调度、STOP模式管理及硬件熵源随机行为引擎,可在资源受限的STM32F103平台上达成低功耗与生命感的工程平衡。该技术路径广泛适用于桌面宠物、智能陪伴终端、微型服务机器人等场景,本文以真实量产项目为蓝本,详解从驱动配置到系统鲁棒性加固的

2026-02-09 11:54:31 399

原创 STM32F103开发环境搭建与首个工程实战

嵌入式开发中,构建稳定可复现的开发环境是项目落地的前提。STM32CubeIDE作为主流工具链,融合了STM32CubeMX图形配置、HAL库抽象、GCC编译器与OpenOCD调试能力,构成完整的工程化闭环。其运行强依赖Java 17运行时,且对路径字符集(禁止中文/空格)和芯片型号精准匹配(如STM32F103C8T6)有严格约束。合理配置系统时钟树(72MHz主频)、调试接口(SWD模式)及GPIO初始化,可支撑LED闪烁等基础验证,并为FreeRTOS、低功耗通信等进阶应用提供可靠基座。

2026-02-09 11:29:50 471

原创 SPI通信原理与STM32 HAL库实战详解

SPI(串行外设接口)是一种同步、全双工、主从式串行通信协议,广泛应用于嵌入式系统中连接Flash、LCD、传感器等高速外设。其核心依赖于时钟极性(CPOL)与时钟相位(CPHA)定义的四种工作模式,决定了数据采样与输出的精确时序关系;硬件层面通过移位寄存器实现位级同步传输,具备低开销、高吞吐和确定性延时的技术优势。在STM32平台,SPI外设由波特率发生器、NSS管理机制及DMA/中断协同驱动,支撑从轮询到高效帧缓冲的多样化应用场景。本文深入解析SPI信号架构、模式匹配原理与HAL库配置逻辑,聚焦CPOL

2026-02-09 11:17:38 461

原创 STM32 DMA原理与多通道ADC采集实战

DMA(直接内存访问)是嵌入式系统中实现高效数据搬运的核心硬件机制,其本质是通过专用控制器绕过CPU,在内存与外设间自主完成批量数据传输,显著降低CPU负载并提升实时性。基于总线仲裁、地址自动递增、循环模式等关键原理,DMA在传感器采集、音频流处理、通信协议栈等场景中发挥不可替代的技术价值。尤其在STM32平台,结合ADC多通道扫描与DMA循环传输,可构建低延迟、高吞吐的连续数据采集系统。本文以STM32F103为例,详解DMA配置参数、中断协同策略及双缓冲优化实践,覆盖从寄存器级原理到HAL库工程落地的完

2026-02-09 11:12:20 428

原创 STM32独立与窗口看门狗原理、配置及工程选型指南

看门狗(Watchdog)是嵌入式系统实现故障自恢复的核心硬件机制,本质是一种基于倒计时的复位触发器。其工作原理依赖于独立时钟源(如LSI或PCLK1)驱动的递减计数器,通过周期性‘喂狗’重载操作维持系统运行;一旦超时未刷新,即强制复位,保障基础可靠性。技术价值体现在对死循环、中断风暴、内存溢出等常见失效模式的硬性兜底能力,并支持分层防御设计。典型应用场景包括工业PLC的确定性任务监控、电机控制中的实时性校验、低功耗设备的唤醒保障,以及医疗/航天等高安全等级系统的双看门狗协同容错。本文深入解析IWDG与WW

2026-02-09 10:55:41 405

原创 STM32驱动LCD原理与SPI显示时序深度解析

LCD显示本质是光电协同的硬件系统,其核心在于液晶调制、TFT开关、背光驱动与控制器(如ST7789/ILI9341)四层物理架构的精确配合。理解RGB565像素格式、GRAM缓存机制及HSYNC/VSYNC时序逻辑,是突破花屏、刷新卡顿等工程瓶颈的前提。SPI接口绝非通用串行总线,需严格匹配Mode 0/3、硬件NSS保持、DMA双缓冲与内存对齐等嵌入式约束。在STM32平台实现稳定显示,关键在于将显示时序收敛到VSYNC中断驱动的局部刷新机制,并解耦RTC更新与显存操作。本文聚焦LCD驱动底层原理与实战

2026-02-09 10:45:30 449

原创 STM32 RTC深度解析:掉电续时、LSE校准与HAL工程实践

实时时钟(RTC)是嵌入式系统中保障时间连续性的关键外设,其核心价值在于跨电源域的断电续时能力与硬件级时间精度。原理上,RTC通过VBAT备用电源维持备份域供电,并依赖LSE(32.768 kHz)晶振实现低功耗高稳态计时;技术价值体现在日志时间戳、定时唤醒、多节点同步等工业级可靠性需求;典型应用场景包括智能电表、IoT终端、电池供电传感器节点及需要Unix时间戳对齐的云边协同系统。本文深入剖析STM32 RTC的电源域设计、LSE时钟源配置、预分频机制、报警掩码逻辑及HAL库安全初始化流程,覆盖从寄存器级

2026-02-09 10:29:15 416

原创 STM32 GPIO底层原理与工程实践全解析

GPIO(通用输入输出)是嵌入式系统中连接软件逻辑与物理世界的最基础硬件接口,其本质是集电平控制、信号整形、驱动能力配置与复用路由于一体的可编程I/O子系统。理解其输入路径中的施密特触发器迟滞特性、ESD保护机制,以及输出路径的推挽/开漏模式差异,是保障系统抗干扰性与电气安全性的前提。在STM32等主流MCU中,GPIO行为受时钟使能、寄存器配置、复用功能映射及外围电路共同约束,任何环节疏漏均可能导致功能异常或硬件损伤。典型应用场景包括LED控制、按键检测、I²C总线通信及低功耗状态管理。本文以STM32F

2026-02-09 10:28:14 418

原创 ESP8266驱动双舵机云台的语音交互系统设计

舵机控制是嵌入式运动控制的基础技术,其核心在于PWM信号生成、角度标定与运动平滑算法。在资源受限的MCU如ESP8266上实现稳定舵机驱动,需兼顾硬件约束(IRAM/DRAM限制、ADC干扰、电源噪声)与实时性要求。通过LED PWM外设配置、分段插值+梯形速度规划,可显著提升动作自然度;结合UART协议解析与状态机调度,能支撑语音指令响应、随机行为等多任务协同。该方案广泛适用于桌面机器人、AI宠物、教育套件等边缘智能交互场景,是TinyML时代轻量级机电一体化的典型实践。

2026-02-09 10:12:04 398

原创 STM32高级定时器核心机制解析:RCR、BKIN与死区控制

高级定时器是嵌入式实时控制系统中实现高精度PWM生成与硬件级安全保护的关键外设,其本质是面向电机驱动、数字电源等场景的专用协处理器。它通过重复计数器(RCR)实现确定性脉冲序列控制,借助刹车输入(BKIN)构建μs级故障响应链路,并依托死区时间(Dead-Time)与互补输出(Channel N)防止功率器件直通。相比通用定时器,高级定时器以硬件闭环替代软件轮询,在时序确定性、功能安全性和资源效率三方面形成不可替代的技术优势。本文深入剖析TIM1/TIM8四大核心机制——RCR、BKIN、Dead-Time

2026-02-09 09:33:39 409

原创 ESP32电容触摸交互系统工程实践

电容式触摸交互是嵌入式人机交互的基础技术之一,依托MCU内置触摸外设实现低功耗、高鲁棒性的物理感知。其核心原理基于寄生电容充放电时间测量,通过阈值判别与动态基线补偿实现稳定检测。该技术具备无需额外传感器、抗光干扰强、响应确定性高等工程优势,广泛应用于智能硬件、桌面机器人及IoT终端等资源受限场景。在ESP32平台中,结合硬件PCB布局优化(如覆绿油铜箔、包地走线、独立LDO供电)与软件状态机设计(中断驱动、IIR滤波、多点时序分析),可构建支持头部/耳部/背部多区域识别的鲁棒触摸子系统。本文聚焦于该方案在嵌

2026-02-09 09:19:15 473

原创 SMI协议栈的时空旅行:从Clause 22到Clause 45的技术演进与未来展望

本文深入探讨了SMI协议栈从Clause 22到Clause 45的技术演进,重点分析了MDIO接口在寄存器寻址、设备管理及数据传输机制上的根本性突破。文章揭示了该演进如何克服早期协议限制,为千兆/万兆以太网PHY设备提供高效管控,并展望了其在高速互联与未来网络中的发展趋势。

2026-02-08 15:23:06 141

原创 从零构建高效数据流:STM32CubeMX与ADC+DMA的工程实践与性能调优

本文详细介绍了如何使用STM32CubeMX配置ADC与DMA构建高效数据采集系统,涵盖工程初始化、DMA缓冲区设计、代码优化及硬件噪声抑制等关键实践。通过性能调优和动态配置技巧,实现多通道传感器数据的高精度、低功耗采集,特别针对ADC与DMA协同工作的优缺点分析提供了深入解决方案。

2026-02-08 14:58:28 142

原创 智能小车的“感官世界”:传感器融合与决策逻辑的趣味解读

本文趣味解读智能小车的传感器融合与决策逻辑,通过寻迹、超声波避障和蓝牙控制等传感器技术,模拟生物感官实现自主路径跟踪与障碍规避。文章详细解析了多传感器协同工作原理及51单片机编程实践,为嵌入式开发者提供实用指南。

2026-02-08 14:55:31 132

原创 从调试器视角重构验证流程:Questasim如何重塑硬件工程师的日常

本文探讨了Questasim如何通过智能调试环境重塑硬件验证工程师的日常工作流程。该EDA工具整合了仿真、调试与分析功能,提供跨层次调试、动态CDC验证和自动化脚本支持,显著提升了复杂问题的定位效率,是现代硬件设计验证的关键工具。

2026-02-08 14:47:09 141

原创 从轮询到中断:Linux按键驱动设计的性能权衡与场景适配

本文深入探讨Linux按键驱动设计,从轮询到中断模式的性能权衡与场景适配。详细分析gpio_keys_polled轮询驱动和gpio_keys中断驱动的实现差异,量化比较CPU占用、响应延迟和功耗指标,并提供低功耗IoT、高实时性系统等不同场景的选型建议和优化策略。

2026-02-08 14:46:23 133

原创 从星座图到代码:用FPGA实时捕捉信号质量的隐形翅膀

本文深入探讨了在FPGA中实现高精度、低延迟的误差向量幅度(EVM)实时测试系统的关键技术。通过算法优化、硬件架构设计和资源调度策略,解决了EVM计算在嵌入式环境中的复杂度和实时性挑战,为5G小基站和射频设备提供了可靠的信号质量监测方案。

2026-02-08 14:42:54 130

原创 从零到一:HDLBits如何重塑数字逻辑学习路径

HDLBits作为创新的交互式学习平台,通过即时反馈和渐进式挑战重塑数字逻辑学习路径。它提供从基础语法到复杂状态机的结构化练习,无需硬件即可培养Verilog设计能力,是FPGA初学者和电子工程学生的高效虚拟实验室。

2026-02-08 14:40:06 148

原创 从投屏到车联网:DRP技术如何重塑日常设备交互生态

本文探讨了DRP(Dual-Role Power)技术如何通过USB Type-C接口实现双向供电与数据传输,重塑设备交互生态。该技术支持角色动态切换和高达240W的功率协商,在智能投屏、车联网及工业物联网等场景中实现无缝连接与高效能源管理,推动设备从单向输送到智能协作的变革。

2026-02-08 14:33:03 131

原创 从邮件收发室到数据枢纽:CAN过滤器背后的系统设计哲学

本文探讨了CAN过滤器在嵌入式系统中的核心设计哲学,从数据分流到负载均衡,详细解析了硬件配置原理与高并发环境下的资源分配策略。通过STM32平台的实践案例,展示了如何优化中断管理和实时性能,为复杂工业控制系统提供高效的CAN过滤器配置指南。

2026-02-08 14:21:03 130

原创 从零构建ZYNQ AMP:揭秘双核启动与通信的底层机制

本文深入解析ZYNQ-7000双核AMP架构的启动流程与通信机制,涵盖从BootROM引导、FSBL加载到内存管理的核心技术。详细介绍了基于共享内存和中断的核间通信实现,为开发者提供构建稳定高效双核系统的实用指南,助力工业控制与嵌入式系统开发。

2026-02-08 14:17:35 122

原创 从二进制到LED闪烁:Keil5 C语言如何让单片机“听懂”你的指令

本文详细解析了如何使用Keil5和C语言编程控制单片机实现LED闪烁。从二进制与电平基础原理出发,到Keil5开发环境将C代码编译为HEX文件的全过程,并通过实战代码演示引脚控制和按键检测,最终完成程序烧录,让单片机精准执行指令。

2026-02-08 14:17:10 135

原创 超越命令行:用树莓派构建AIoT智能家居与边缘计算实践

本文详细介绍了如何利用树莓派(Raspberry Pi)构建AIoT智能家居与边缘计算系统。从硬件选型、环境搭建到传感器数据采集、计算机视觉模型部署,提供了完整的实践方案。通过边缘-云端协同和严格的安全措施,实现高效、低功耗且隐私安全的本地智能处理,为开发者提供可落地的解决方案。

2026-02-08 14:12:35 126

原创 从按键抖动到状态机:嵌入式系统中的信号稳定化艺术

本文深入探讨嵌入式系统中信号稳定化的关键技术,重点分析物理按键抖动问题及其解决方案。通过对比传统延时防抖方法的局限性,详细介绍基于状态机的先进防抖设计,并结合STM32平台和HAL库提供具体实现方案。状态机方法不仅能有效消除GPIO信号抖动,还支持多按键控制和低功耗优化,显著提升系统可靠性和响应速度。

2026-02-08 14:10:33 125

原创 深入TIM架构:STM32定时器设计与性能优化全解析

本文深入解析STM32的TIM定时器架构,涵盖时钟树配置、中断优先级管理和PWM生成机制。重点探讨如何优化定时器性能,包括精确计算预分频器与自动重载值、中断响应优化策略,以及舵机控制等实际应用中的精密PWM配置技巧,帮助开发者构建高效稳定的时间控制系统。

2026-02-08 14:09:29 161

原创 工业物联网中的稳定通信:WT32-ETH01与W5500的可靠连接实践

本文深入探讨工业物联网中WT32-ETH01网关与W5500以太网控制器的可靠通信实践。通过配置WT32-ETH01作为TCP Server和W5500作为TCP Client,构建高稳定性通信架构,涵盖硬件特性、网络规划、加密传输及故障排查,确保在复杂工业环境下的稳定通讯。

2026-02-08 14:05:22 113

原创 LED闪烁背后的时序艺术:嵌入式系统中的时间管理与延时实现

本文深入探讨嵌入式系统中LED闪烁背后的时间管理艺术,重点分析32单片机的时序控制实现。从GPIO基础控制到HAL库的硬件定时器应用,详细对比软件延时与硬件定时的优劣,为STM32开发者提供精准时间管理的最佳实践和调试技巧,确保系统稳定性和低功耗性能。

2026-02-08 14:04:47 125

原创 嵌入式私活中的技术债务:如何避免代码成为你的隐形负债

本文探讨嵌入式私活项目中技术债务的成因与应对策略,提供实用的避坑指南。通过分析硬件耦合性、实时性约束等嵌入式开发特殊性,分享模块化设计、自动化测试和契约管理等实践方法,帮助开发者避免代码成为隐形负债,提升项目长期可维护性。

2026-02-08 14:03:20 133

动态添加对象属性[项目源码]

本文介绍了两种为JavaScript中的Object对象动态添加属性和值的方法。第一种方式是普通方式,通过直接使用方括号语法将变量作为属性名动态添加到对象中。第二种方式使用了eval()函数来动态解析字符串表达式,从而实现属性的动态添加。这两种方法都能有效地为对象动态添加属性,但需要注意的是,使用eval()可能存在安全风险,应谨慎使用。

2026-01-29

HTML基础教程[项目代码]

本文详细介绍了HTML的基础知识,包括HTML的定义、标签的分类与使用、head中的标签、文本标签、列表、图片和超链接、表格标签等内容。HTML(Hypertext Markup Language)是一种超文本标记语言,用于在不同的文本中加不同的标记让文本的意义和功能不同。文章详细讲解了双标签和单标签的语法、标签的分类(可见标签和不可见标签)、head中的标签(如meta、title、link等)、文本标签(如标题标签、段落标签、字体标签等)、列表(无序列表、有序列表、自定义列表)、图片和超链接的使用方法,以及表格标签的基本结构和不规则表格的制作。通过本文的学习,读者可以掌握HTML的基本语法和常用标签的使用,为进一步学习网页开发打下坚实的基础。

2026-01-28

jQuery与JS用法解析[源码]

本文详细介绍了jQuery中的$.get、$.getJSON、$.post和$.ajax的用法,以及JavaScript在学习过程中的一些关键理解。内容涵盖了AJAX请求参数的传递方式(请求参数与请求属性)、复杂JSON的解析方法(使用JSONObject-lib包)、DOM对标签属性和样式的操作(如getAttribute、setAttribute等)、节点的读写属性与方法(如insertBefore、replaceChild等)、以及创建新节点的方式(如createElement、createTextNode等)。此外,还总结了innerHTML、outerHTML、textContent等属性的使用场景与区别,为前端开发者提供了全面的参考指南。

2026-01-28

JS数组拼接字符串[项目源码]

0

2026-01-28

Bryntum Scheduler Pro 6.1.1更新[项目代码]

Bryntum Scheduler Pro是一款专业的调度UI组件,支持任务调度并考虑资源和任务的可用性。文章详细介绍了6.1.1版本的更新内容,包括BUG修复和框架支持。6.1.1版本修复了深层嵌套事件在移动时错误重绘的问题,以及Timespan高亮在项目模型变更后停止工作的问题。此外,文章还提到了6.1.0版本的新特性,如优化了时间轴的缩放性能,增加了对远程分页、排序和过滤的支持,并对Excel导出功能进行了重构。6.0.6版本的BUG修复包括事件缓冲区导致非工作时间计算错误等问题。文章还列出了支持的框架版本,如NodeJS、TypeScript、Angular、React、Vue等。

2026-01-29

PicaComic漫画源开发[代码]

本文详细介绍了Pacalini/PicaComic自定义漫画源的开发指南,从v3.0.0版本开始支持JavaScript编写漫画源插件,v3.1.0版本进一步改进了API支持。指南涵盖了开发环境准备、核心架构、网络请求模块、数据处理模块、HTML解析模块以及日志记录等关键内容。开发者需要具备基础的JavaScript知识,了解目标漫画网站的结构和API,并下载官方提供的模板文件。网络请求模块提供了多种HTTP方法支持,数据处理模块包括编码解码、哈希计算和解密算法。HTML解析模块允许类似浏览器DOM的操作,日志记录系统则帮助开发者调试和优化代码。文章还提供了开发实践建议和调试技巧,帮助开发者逐步掌握复杂功能的实现。

2026-01-29

电商商品规格组合与笛卡尔积[可运行源码]

本文详细介绍了电商系统中商品多规格选项(如颜色、容量、版本等)的组合问题,核心算法是笛卡尔积(Cartesian Product)。笛卡尔积的本质是多个集合中取出每个集合的一个元素,组成所有可能的有序组合。文章通过代码示例展示了如何用JavaScript实现通用的多维度规格组合生成,并进一步讨论了电商实际场景中的扩展,如过滤无效组合、关联SKU属性(价格、库存、SKU ID)以及优化组合数爆炸的问题。最后总结了电商SKU管理的核心逻辑,即笛卡尔积与业务过滤的结合,这是几乎所有电商平台商品规格选择的底层实现。

2026-01-29

window.onload冲突解决[源码]

文章探讨了在JavaScript中因多处使用window.onload导致的冲突问题及其解决方案。作者指出,当某段JS代码调用window.onload = function()属性,同时页面上又有body onload语句时,window.onload事件会覆盖body onload事件。为解决这一问题,文章提出了三种方法:1. 使用attachEvent或addEventListener为onload添加所需运行的函数;2. 将两个初始化函数合并为一个新的函数;3. 使用addLoadEvent函数,该函数可以添加多个加载执行的事件。作者推荐第三种方法,认为其简单方便,同时也提到直接使用隐式函数更为快捷,但addLoadEvent更为专业。

2026-01-28

JS字符串常用方法[项目源码]

本文详细介绍了JavaScript中字符串的常用操作方法,包括增、删、改、查四大类。增操作包括加号操作符、模板字符串、数组join()方法和concat()方法;删操作包括slice()、substr()和substring()方法;改操作涵盖trim()系列、repeat()、padEnd()以及大小写转换方法;查操作则包括charAt()、indexOf()、startsWith()和includes()等方法。此外,还介绍了字符串的转换方法split()和模板匹配方法match()、search()、replace()。文章强调了字符串不可变的特性,所有操作均返回新字符串而非修改原字符串。这些方法为开发者提供了丰富的字符串处理能力,适用于各种场景。

2026-01-28

JS href跳转问题解决[项目代码]

本文详细分析了JavaScript中window.location.href不起作用的两种常见情况及解决方案。第一种情况是与a标签配合使用时,由于a标签的执行优先于window.location.href,导致跳转不执行。解决方案包括使用window.event.returnValue = false、return false或window.event.preventDefault()来阻止默认事件。第二种情况是与submit按钮配合使用时,由于submit按钮的提交事件优先于window.location.href,导致跳转不执行。解决方案是使用button按钮代替submit按钮,并同样采用阻止默认事件的方法。文章还指出,第三种方法window.event.preventDefault()在IE浏览器中不支持,推荐使用前两种方法。这些解决方案都能有效解决window.location.href不执行的问题。

2026-01-28

大顶堆与小顶堆详解[源码]

本文深入探讨了数据结构中的大顶堆和小顶堆,详细介绍了它们的定义、特性以及实际应用场景。大顶堆的根节点是所有节点中的最大值,常用于优先队列和堆排序;小顶堆的根节点是最小值,适用于查找流中的前K个最小元素等问题。文章通过C++代码展示了如何实现这两种堆结构,包括插入、删除、扩容等核心操作,并提供了完整的代码示例和测试结果。堆的插入和删除操作时间复杂度均为O(log n),在高效处理优先级任务和排序问题中具有重要价值。

2026-01-14

MSF木马生成命令[项目源码]

本文详细介绍了使用msfvenom框架生成针对不同操作系统(如Windows和Linux)的木马命令。msfvenom是Metasploit框架中的一个工具,用于生成各种类型的Payload,支持多种编码方式、文件格式和平台。文章涵盖了EXE、VBS、PowerShell、DLL、Python等多种格式的木马生成方法,并提供了具体的命令示例和参数解释。此外,还介绍了跨平台Payload的生成技巧,如嵌入到现有文件、生成原始Shellcode等。最后,文章提醒读者注意使用这些工具的法律和道德边界,仅用于合法的安全测试目的。

2026-01-02

云服务器推荐及教程[可运行源码]

本文详细介绍了三种适用于深度学习的云服务器平台:智星云、Google Colab和并行超算云。智星云支持按分钟计费,适合短期使用,但数据传输较慢且数据不保留;Google Colab免费但需翻墙,适合预算有限的用户;并行超算云提供独立存储空间和环境绑定,首次注册赠送200元时长,适合长期使用。文章还提供了各平台的使用教程和注意事项,帮助用户快速上手。

2026-01-01

SBX交叉算子详解[可运行源码]

本文详细介绍了模拟二进制交叉算子(SBX)的原理和应用。SBX是一种在遗传算法中模拟二进制编码单点交叉的方法,其核心思想是保持交叉前后解码实数值的平均值相等,并通过传播因子β控制子代与父代的距离。文章阐述了SBX的两个重要特性:平均值守恒和传播因子特性,并解释了如何通过概率密度函数在实数中模拟这些特性。此外,还讨论了二进制编码的局限性,如汉明悬崖问题,以及SBX如何有效避免这些问题。最后,文章提供了基于父代生成子代的数学公式,展示了如何通过随机生成不同的β值来产生多样化的子代。

2025-12-31

大模型显存占用分析[可运行源码]

本文系统分析了大模型在单卡训练或推理时的显存占用问题。首先介绍了数据精度的概念,包括常见的几种精度类型(如FP16、BF16、TF32等)及其存储方式。接着详细讲解了全参训练和推理时的显存占用情况,包括混合精度训练的原理、流程以及显存分配。此外,还探讨了Lora和Qlora这两种高效参数微调方法在显存占用上的优化策略。文章通过具体例子和计算公式,帮助读者理解如何估算模型训练和推理时的显存需求,并对比了不同方法(如全参微调、Lora、Qlora)的显存占用差异。最后,总结了各种训练方法的显存占用情况,为读者提供了实用的参考。

2025-12-31

等保测评师考试与前景[项目代码]

本文详细介绍了等保测评师的考试条件、职业前景及主要工作内容。等保测评师证含金量较高,需在具有等保测评资质的机构缴纳3个月社保后由机构统一申请,申请时需提供多项资料。对于在校生及转业人员,可先考取《注册网络安全等级测评工程师认证》,再逐步考取初、中、高等保测评师。职业前景方面,等保测评师在拿到中级后,可转向售前或项目管理,建议融合其他资质如风险评估、CISA等以提升竞争力。主要工作包括操作系统及数据库安全技术研究、网络安全等级保护测评、安全解决方案设计等。文章最后祝愿读者早日考取等保测评师。

2025-12-31

脑机接口技术原理[源码]

脑机接口(BCI)通过采集大脑神经活动产生的电信号,实现人脑与外部设备的实时通信与控制。根据信号采集的侵入程度,可分为非侵入式、半侵入式和侵入式三大类。非侵入式脑机接口通过头皮表面的电极采集信号,具有无创、安全等优势;半侵入式脑机接口将电极植入颅腔内,信号质量更高;侵入式脑机接口直接将电极植入大脑皮层,获取最高质量的神经信号。脑机接口技术在医疗康复、人工智能和人机融合领域具有广阔应用前景,但也面临信号质量、侵入性风险、技术瓶颈和伦理安全等挑战。未来,随着材料科学、人工智能和临床医学的交叉融合,脑机接口技术有望实现更安全、更精准、更智能的神经信号获取与处理。

2025-12-31

2025华数杯数学建模竞赛[代码]

本文详细介绍了2025年第六届“华数杯”全国大学生数学建模竞赛的核心信息,包括竞赛背景、目标、时间安排、赛题特点、参赛规则、奖项设置及备赛建议。竞赛由天津市未来与预测科学研究会主办,中国未来研究会大数据与数学模型专业委员会协办,面向全国全日制本科生、专科生及研究生,旨在提升大学生运用数学方法和计算机技术解决实际问题的能力。竞赛时间为2025年8月7日至10日,赛题来源于工业、经济等领域的实际问题,强调数学建模与实际应用的结合。奖项分为全国一、二、三等奖及优秀奖,获奖证书在保研、求职中具有显著优势。文章还提供了备赛资源推荐,如编程工具、历年优秀论文及赛题解析,并分享了公式编辑器、流程图绘制工具及论文排版技巧。

2025-12-30

图像恢复技术概述[项目源码]

本文详细介绍了图像恢复的相关知识,包括图像恢复的定义、评价标准和实现方法。图像恢复任务涵盖图像去噪、去模糊、超分辨率、修复等,评价标准主要有峰值信噪比(PSNR)和结构相似性(SSIM)。图像超分辨率的方法分为传统方法和深度学习方法,传统方法包括基于插值和字典学习的技术,而深度学习方法则涉及SRCNN、VDSR等多种模型。文章还探讨了图像恢复的意义及其与图像分割的区别,强调了图像恢复在图像理解中的重要性。最后,总结了图像恢复技术的核心内容及其应用前景。

2025-12-30

SpringCloud微服务架构[项目源码]

本文详细介绍了微服务架构SpringCloud的核心概念、组件及其应用。首先,文章对比了SOA和微服务架构的优缺点,指出微服务架构通过去中心化、轻量级通信和独立部署等特点,解决了SOA中ESB的复杂性和通信速度问题。接着,文章深入讲解了Eureka注册中心的作用和原理,包括服务注册、发现和心跳机制,以及如何搭建高可用的Eureka集群。此外,文章还介绍了Ribbon负载均衡的实现方式,以及Hystrix熔断器在服务降级和线程隔离中的应用。最后,通过一个实际案例,展示了如何搭建微服务项目,包括服务提供者、消费者和注册中心的配置与实现。

2025-12-30

Java与PHP SM2签名转换[代码]

本文详细介绍了如何将Java中的SM2签名转换为PHP实现,包括签名逻辑、Base64编码、URL编码等关键步骤。文章提供了Java和PHP的代码示例,并解释了签名长度差异的原因及解决方案。此外,还讨论了如何正确处理DER编码签名与裸签名之间的转换,以及如何在PHP中进行验签。最后,给出了一个完整的PHP示例代码,帮助开发者实现SM2签名的转换与验签功能。

2026-02-09

Git分支特定提交合并指南[项目源码]

本文详细介绍了如何将一个Git分支的特定提交合并到另一个分支的多种方法。主要内容包括使用cherry-pick命令合并单个或多个提交、创建临时分支进行部分功能合并、处理合并冲突的策略以及高级应用场景。文章提供了从基础到进阶的完整操作步骤,包含实际案例演示和最佳实践建议,帮助开发者精确控制代码合并范围,有效管理分支间的代码共享。同时涵盖了冲突解决技巧、可视化工具使用和常用命令速查表,是Git版本控制中分支管理的实用技术指南。

2026-02-07

C#代码审计与Vue开发[代码]

本文详细介绍了C#代码审计的实战技巧和前置知识,包括C#的基础语法、数据类型、变量、常量、可空类型、结构体、枚举、运算符、判断循环、封装、方法、数组、类、继承、多态性、运算符重载、接口、正则表达式、异常处理、命名空间、预处理器指令、文件输入输出、特性(Attribute)、反射(Reflection)、属性、索引器、委托、事件、集合、泛型、匿名方法、不安全代码、多线程等内容。同时,还涵盖了Vue的前端开发知识,如路由按需加载、el-input组件使用、表单验证、this.$emit()方法等。文章结合实例代码,详细讲解了如何在.NET Core中使用JWT进行授权认证、依赖注入、过滤器、异常中间件、Swagger接口文档等技术的应用。此外,还介绍了EntityFramework框架的使用、DbContext类的作用、DbSet的常用方法、数据持久化、LINQ查询、Lambda表达式等。全文内容详实,适合有一定基础的开发者学习和参考。

2026-02-07

Java面试经验与题目分享[可运行源码]

本文分享了作者在11月面试3家Java岗位的经验,指出大部分面试者因准备不足而未能通过面试。作者作为一名有6年经验的Java开发者,提供了涵盖Java基础、JVM、多线程、数据库、Spring、Dubbo、Kafka等多个技术领域的面试题目,总计近2000页。文章还总结了Java开发者常见的缺点,如Java核心掌握不牢、Spring原理不清晰、项目描述平庸等,并提供了详细的面试题和场景题,帮助读者更好地准备面试。此外,作者还分享了大厂常见的面试场景题和技术问题,为求职者提供了宝贵的参考。

2026-02-06

HTML+CSS+JS练手项目[源码]

本文介绍了一个基于HTML、CSS和JavaScript的练手小项目——Hangman(猜单词游戏)。项目主要功能包括使用SVG绘制小人图、生成随机单词并展示、以及单词正确与错误的提醒。文章详细解析了HTML结构、CSS布局和JavaScript逻辑的实现过程。HTML部分主要使用SVG标签构建小人图;CSS部分采用flex布局实现页面居中;JavaScript部分通过jQuery实现键盘监听、单词匹配和游戏逻辑控制。该项目适合前端新手练习HTML、CSS布局和JavaScript基础,代码简洁易懂,具有实践参考价值。

2026-02-04

React中的dispatch()[代码]

本文详细介绍了React中Redux的dispatch函数的作用和使用方法。dispatch函数是Redux的核心概念之一,用于触发store中的action,从而更新状态并重新渲染组件。文章解释了dispatch如何将action传递给reducer,以及reducer如何处理action来更新store的状态。此外,还介绍了在mapDispatch中使用dispatch的两种方式:直接传递对象和使用异步函数处理action。通过使用dispatch,开发者可以更好地管理全局状态,保持组件的纯粹性和可重用性,同时提高代码的可维护性。

2026-02-04

JS字节与字符串互转[源码]

本文介绍了在JavaScript中实现字节数组(byte[])与字符串(string)之间相互转换的方法,特别针对UTF-8编码。提供了两个核心函数:stringToByte用于将字符串转换为字节数组,处理了不同Unicode范围的字符编码;byteToString则用于将字节数组转换回字符串,通过二进制匹配和解析实现解码。这些函数考虑了UTF-8编码的多字节特性,能够正确处理各种Unicode字符。代码实现展示了字符编码转换的关键技术细节,对于需要处理二进制数据或字符编码转换的JavaScript开发者具有实用参考价值。

2026-02-04

Vue+Element轮播实现[项目源码]

本文介绍了如何使用Vue和Element UI的Carousel组件实现一个走马灯效果,能够一次轮播指定数量的图片。文章提供了HTML代码示例,展示了如何设置Carousel组件的基本属性,如loop和autoplay,以及如何通过v-for指令动态渲染图片列表。此外,还详细说明了如何通过JavaScript处理数据源,将图片列表分组以实现一次显示多张图片的效果。代码示例清晰,适合初学者理解和实践。

2026-02-04

Promise.all处理多请求[可运行源码]

本文介绍了JavaScript中Promise.all方法在处理多个异步请求时的应用。Promise.all能够接收一个Promise数组,并返回一个新的Promise实例,等待所有Promise实例完成。当所有实例成功时,结果以数组形式传递给then方法;若任一实例失败,则立即进入catch处理。文章通过代码示例展示了Promise.all的基本用法和实际应用场景,如在React项目中处理一键开票需求时如何高效管理多个请求。同时提醒开发者注意错误处理和性能影响,强调该方法在提升代码简洁性和可读性方面的优势。

2026-02-03

JS笔试题解析[项目代码]

本文详细解析了JavaScript中的常见笔试题,包括数据类型隐式转换、NaN和null的特殊行为、浮点数计算精度问题、日期对象的使用、原型链的继承机制以及URL参数获取方法。文章通过具体示例和考点分析,帮助读者深入理解JavaScript的核心概念和常见陷阱。例如,数字与字符串相加时的隐式转换规则、NaN参与运算的结果、null转换为数字后的表现、浮点数计算精度问题以及原型链中属性和方法的查找顺序等。此外,还介绍了如何通过Date对象获取系统时间信息以及location对象获取URL参数的方法。

2026-02-03

JS千分位分隔实现[项目代码]

本文详细介绍了如何使用JavaScript实现数字的千分位逗号分隔功能,包括基本实现、处理小数点、国际化支持、自定义分隔符以及处理负数及零值等多种场景。通过具体的代码示例和实际应用技巧,帮助开发者提升数字展示的可读性和用户体验。文章还强调了在前端开发中,合理组织代码结构和采用模块化设计的重要性,特别是在金融类应用中,良好的数字格式化可以减少误读风险。

2026-02-03

JS嵌入页面方式[项目代码]

JavaScript代码嵌入页面的方式主要有三种:内嵌式、外链式和行间事件。内嵌式是将JS代码嵌入到HTML页面的不同位置,如<head>、<body>或<html>标签中,其中嵌入到<head>时需要写入口函数。外链式是通过外部导入JS文件,适用于代码量较大的情况,提高代码的阅读性和可复用性。行间事件则主要用于简单的事件操作,如点击、鼠标移入等,适用于JS代码较少时使用。这三种方式各有适用场景,开发者可根据具体需求选择合适的方式。

2026-02-03

Trigger.dev开源平台[项目代码]

Trigger.dev 是一个开源、面向开发者的平台,支持使用常规异步代码创建和管理长时间运行的后台任务与工作流。它兼容 JavaScript 和 TypeScript,可无缝集成到现有代码库并支持版本控制。平台通过弹性扩展、无超时、自动重试、并发控制和调度能力,消除基础设施管理负担。Trigger.dev 提供丰富的开发体验,包括 CLI、SDK、实时监控、高级筛选和可自定义警报。支持云端托管和自托管,助力开发者构建可靠且自动扩展的复杂工作流。主要功能包括无超时限制与弹性扩展、全方位可观测性与监控、丰富的调度与事件触发、开发者友好的 SDK 与 CLI、并发与重试控制以及灵活的部署选项。使用场景涵盖后台任务自动化、工作流编排、AI 与机器学习任务、事件驱动应用以及前端集成。Trigger.dev 使开发人员能够构建和部署强大的后台作业,而无需受传统无服务器平台的限制。

2026-02-02

Scrapy电商数据爬取[源码]

本文探讨了基于Scrapy框架的电商平台数据爬取与展示系统。随着大数据时代的到来,网络爬虫技术成为快速获取和分析电商平台数据的重要工具。文章详细介绍了系统的开发背景、研究内容、软件平台和开发语言选择(Python),以及系统的主要模块设计,包括数据采集、清洗、分析和可视化。通过分析客户对电商平台店铺的评价,系统能够帮助用户快速获取商品的重要信息,如正面评论、负面评论和买家数量等。研究还涉及了爬虫的工作原理、抓取策略以及在实际应用中遇到的问题和解决方案。

2026-02-02

CSS整理与持续更新[项目代码]

本文详细介绍了CSS的多种引入方式、命名规范、选择器类型、排版技巧、伪类应用、列表样式设置、背景样式调整以及padding和margin的使用方法。内容涵盖了从基础到高级的CSS知识,包括行内样式、内部样式表、外部样式表的优先级,基本选择器和高级选择器的使用,文字排版和文本装饰,伪类的顺序和设置,列表样式的自定义,背景图像的定位和重复,以及padding和margin的简写规则。此外,还提供了CSS3中polygon()函数的应用实例,展示了如何创建半圆环效果。文章内容丰富,适合前端开发者和CSS学习者参考。

2026-02-02

JS清空表单值[项目源码]

本文介绍了如何使用JavaScript和jQuery清空表单中的输入框和选择框的值。通过示例代码展示了如何为清空按钮绑定点击事件,遍历表单中的所有input和select元素,并将其值设置为空。这种方法适用于需要快速重置表单的场景,提高了用户体验。代码简洁明了,易于理解和实现。

2026-02-02

动态创建QML对象[源码]

本文详细介绍了在Qt6 QML中使用JavaScript动态创建QML对象的两种方法:Qt.createComponent()和Qt.createQmlObject()。Qt.createComponent()适用于从QML文件或类型创建组件,适合需要多次创建对象或复杂场景;而Qt.createQmlObject()则直接从QML字符串创建对象,适合一次性或简单场景。文章通过示例代码展示了两种方法的具体实现,并比较了它们的特性、性能差异及适用场景。此外,还提供了使用时的注意事项,如异步加载处理、错误捕获和性能优化建议,帮助开发者更高效地动态创建QML对象。

2026-02-02

JavaScript位运算详解[项目代码]

本文详细介绍了JavaScript中的位运算移位运算符,包括按位与、按位或、按位异或、按位非、左移、有符号右移和无符号右移等操作。位运算直接对二进制位进行计算,速度极快但不直观,适用于整数运算。文章还提供了位运算的实际应用示例,如取整、值交换、颜色值转换、判断正负、判断奇偶、判断索引是否存在以及标志位判断等。通过这些示例,读者可以更好地理解位运算的底层原理及其在编程中的高效应用。

2026-02-01

HTML+CSS 烟花秀[源码]

本文详细介绍了如何使用HTML5的<canvas>元素和JavaScript实现烟花秀效果。首先,通过初始化画布并设置其尺寸以适应不同屏幕。接着,定义烟花的行为,包括运动轨迹、颜色和消失方式。然后,使用路径和填充命令在画布上绘制圆形,模拟烟花的爆炸效果。最后,通过requestAnimationFrame实现动画循环,不断更新和重绘烟花的位置和状态。文章还提供了完整的代码示例,包括HTML和JavaScript文件,帮助读者快速实现烟花秀效果。

2026-02-01

HTML常用编码详解[可运行源码]

本文详细介绍了HTML中常用的编码方式,包括HTML实体编码、字符集(ASCII、ISO、Unicode)、URL编码和Base64编码。HTML实体编码用于转义预留字符,确保正确显示;字符集部分涵盖了ASCII、ISO和Unicode的发展与应用,强调了Unicode在多语言环境中的优势;URL编码解释了表单数据传输的原理及编码必要性;Base64编码则用于二进制数据的可打印字符表示,确保数据传输的可靠性。文章内容全面,适合初学者和开发者参考。

2026-01-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除