- 博客(41)
- 收藏
- 关注
原创 揭秘LCD1602:单片机如何控制显示
LCD1602是一种两行16字符的液晶显示屏,通过单片机控制显示字母、数字和符号。其核心操作只需关注三个关键引脚:RS(命令/数据选择)、RW(通常接地仅写)、E(使能触发)。显示过程为:设置RS电平确定数据类型,在数据口放置指令或字符编码,通过E引脚的高低电平跳变触发执行。具体表现为E引脚从高到低的跳变时,屏幕会"读取"当前数据。使用时需先初始化,然后通过写命令设置屏幕状态,写数据实现字符显示。示例代码展示了在STM32环境下如何初始化LCD1602并在指定位置显示字符串。
2026-03-28 18:03:32
149
原创 OLED点阵显示原理与IIC通信详解
OLED屏幕通过点阵原理显示内容,每个发光点可单独控制。采用IIC通信仅需4根线(VCC、GND、SDA、SCL),相比LCD1602具有显示任意图形、低功耗等优势。IIC通信核心是SCL时钟线与SDA数据线的电平配合:SCL低电平时改变SDA,高电平时读取数据。显示过程包括起始信号、8位数据传输和停止信号。应用时,单片机将数据(如超声波距离15cm或舵机角度90°)转换为字模通过IIC发送,OLED即显示对应内容。这种点阵显示方式支持汉字等任意图形,接线简单且显示效果好。
2026-03-28 17:46:27
183
原创 超声波模块原理讲解
超声波模块通常有4个引脚:VCC、GND、Trig(触发)和Echo(接收)。工作原理分4步:1)单片机触发Trig发出信号;2)模块发射8个超声波脉冲;3)声波遇障碍物反弹;4)Echo接收回波并输出高电平。通过计算发射到接收的时间差,利用声速(340m/s)可算出距离(距离=时间×34000÷2)。代码中通过UltraSoundInit()初始化,GetDistanceDelay()测量距离,当distance_cm<10cm时判断为有障碍物。
2026-03-28 17:03:13
57
原创 揭秘舵机精准控制的PWM奥秘
摘要:舵机通过PWM信号实现角度控制,其核心是闭环伺服系统。PWM通过调节占空比(0.5-2.5ms对应0-180°)控制舵机转动,不同品牌响应存在差异。硬件PWM方案优于软件实现,具有更高精度且不占用CPU资源。文中详细介绍了双路PWM的硬件实现方案,包括定时器分工、参数计算及相位控制,确保两路信号不同时为高电平。PWM技术通过调节占空比改变平均电压,从而控制电机转速或舵机角度。
2026-03-28 13:00:28
366
原创 ISP下载与执行全流程详解
STM32 ISP下载步骤包括:将BOOT0接3.3V,BOOT1接地,按复位键启动下载。程序执行时需在mcuisp/flymcu中勾选"编程后执行"等选项,设置DTR低电平复位和RTS高电平进bootloader。搜索对应COM口后,注意不要勾选锁死芯片选项,选择正确的hex文件后点击开始编程。操作时需特别注意避免误操作导致芯片锁死报废。
2026-03-28 11:08:02
140
原创 ROS语音功能篇--环境搭建--语音播报--语音听写
摘要:本节介绍机器人语音功能开发环境的配置步骤。主要内容包括:1)安装语音插件mplayer和libasound2-dev;2)将科大讯飞语音功能包导入ROS工作空间并编译;3)在讯飞开放平台注册账号,创建应用获取APPID等参数;4)下载Linux版SDK并替换功能包中的依赖文件;5)修改.cpp文件中的APPID参数。最后通过catkin_make完成编译,为后续语音功能开发做好准备。
2026-03-15 16:34:58
533
原创 DIY无人机--升压降压电路
摘要:该无人机电源管理系统将锂电池(4.2V-3.7V)转换为系统所需的5V和3.3V稳定电压。系统包含防反接保护(二极管D5)、电源开关(KG1)、升压电路(BL8530将电压升至5V)和降压电路(662K将5V降至3.3V)。升压电路采用47μH电感(L1)和整流二极管(D6),降压电路通过LDO芯片实现。所有输出端均配有滤波电容(C15、C17等)以稳定电压。该系统采用先升压后降压的设计,确保在电池放电周期内为STM32等精密器件提供稳定3.3V供电。
2026-03-14 15:25:46
854
原创 STM32学习--2.4G通信模块--编程
摘要:nRF24L01无线模块通过SPI协议与STM32通信,采用主从模式,包含3根核心通信线(SCK时钟、MOSI主机发送、MISO从机接收)和2根控制线(CSN片选、CE使能)。供电需严格使用3.3V并加装47μF滤波电容,所有地线必须共接。通信时STM32先拉低CSN建立连接,通过SCK同步时序,经MOSI发送指令,MISO接收响应,最后拉高CE启动无线收发。典型连接方式为:SCK-PB3、MOSI-PB5、MISO-PB4、CSN-PB0、CE-PB1,注意避免将SPI线误接至普通GPIO口。
2026-03-14 14:14:39
679
原创 定时器PWM输出功能的使用
摘要:PWM(脉冲宽度调制)通过调节脉冲信号的占空比控制输出功率,广泛应用于LED调光、电机调速等领域。其核心参数包括占空比(决定等效输出效果)、频率(影响应用场景选择)和分辨率(由定时器位数决定)。以STM32F10x为例,实现PWM需配置定时器时钟、GPIO复用功能(如PA6作为TIM3_CH1输出)、设置预分频器(降低计数频率)和计数模式(向上/向下计数)。关键代码包括定时器初始化、PWM模式配置(模式1、初始占空比)及GPIO设置(复用推挽输出)。通过修改比较值(如TIM_SetCompare1)可
2026-03-11 15:57:40
1038
原创 ROS文件解读(package .xml--CMakeLists.txt)
是元信息文件,核心作用是声明包名、版本、依赖,让 ROS 识别包的基本信息。是编译规则文件,核心作用是指定编译源文件、链接依赖库、生成可执行文件(ROS 节点)。两个文件是 ROS 功能包的 “标配”,且依赖声明、包名必须保持一致,否则会导致编译 / 运行错误。
2026-03-07 11:54:45
568
原创 基本元件学习--1--三极管--场效应管--二极管
三极管和场效应管是电子电路中的核心元件。三极管通过小电流Ib控制大电流Ic,具有放大和开关功能,分为NPN和PNP两种类型,工作区包括截止区、放大区和饱和区。场效应管由电压控制电流,分为MOSFET和JFET,主要用作开关和信号放大,在手机充电、CPU等领域广泛应用。二极管则实现单向导电,用于整流、稳压和防反接等场景。掌握这些元件的工作原理和应用对电子电路设计至关重要。
2026-03-07 10:52:42
886
原创 IMU(数据模拟)
本文介绍了四种在ROS中模拟IMU数据的方法:1)使用rostopicpub发布静态IMU数据(模拟静止状态);2)修改角速度参数模拟旋转运动;3)使用ROS官方IMU数据包进行测试;4)通过RViz可视化姿态变化。这些方法无需硬件即可测试imu_filter包的功能,包括Mahony和Madgwick滤波器。重点讲解了如何设置重力加速度、角速度等参数,以及如何查看解算结果和可视化姿态。所有方法都提供了详细的操作步骤,适合开发者快速验证算法效果。
2026-03-06 16:16:27
353
原创 IMU(惯性测量单元)--基础
从本节起,小编将以一个全新的系列,来认真分享ROS的基础知识,区分于前面的试水写作,该系列将会更加精炼,可复刻程度更高,话不多说,我们马上开始。第一节,我们将创建一个工作空间,并且之后的项目实践都将在其基础上实现,小编将在接下来的文章中给出文件的结构和源代码,读者只需在理解的基础上加以实践即可。是一种的传感器模块,用来感知等物理量。
2026-03-06 11:54:32
743
原创 电路设计快速入门--拒绝死磕理论--圈重点
本文摘要电子电路学习核心要点:1)掌握电路分析基础(欧姆定律、KCL/KVL等)和模拟电子关键(二极管、三极管、运放);2)数字电子需掌握门电路及时序概念,熟练使用EDA软件;3)通过4个实战项目(流水灯、稳压电源、运放电路、最小系统板)以实践驱动理论;4)学习策略应聚焦实际设计所需的10%核心知识,结合画图与制板能力提升。建议从立创EDA入手,通过具体项目需求反向学习理论,避免陷入纯理论学习的误区。
2026-02-28 23:07:35
401
原创 Python--可执行文件的转换(Windows系统)
摘要:PyInstaller是一个跨平台工具,可将Python脚本打包成独立可执行文件,无需Python环境即可运行。本文介绍了PyInstaller的安装方法(通过pip)和核心打包命令,包括生成单文件/文件夹、隐藏控制台、自定义名称和图标等选项。打包后会生成build(可删除)、dist(含可执行文件)和.spec配置文件。需要注意的是,打包后的文件不具有跨平台性(Windows/Linux需分别打包)。最后以科赫雪花程序为例,演示了带图标打包为单文件的操作流程。
2026-02-27 18:42:46
523
原创 Python--socket模块--TCP编程
本文介绍了TCP Socket编程的核心原理与实现方法。TCP协议通过三次握手建立可靠连接,使用Socket实现客户端-服务器通信。服务器端需创建Socket对象、绑定端口、监听连接并处理数据;客户端则主动连接服务器并发送数据。代码示例展示了完整的TCP通信流程:服务器端(tcp_server.py)实现端口监听和数据收发,客户端(tcp_client.py)实现连接建立和消息交互。运行步骤包括先启动服务器再启动客户端,通过命令行进行消息传输测试。文章还提供了端口占用检测等实用技巧,帮助开发者快速掌握TCP
2026-02-27 16:36:11
481
原创 Python--速通--quick版
本文介绍了Python编程基础,涵盖模块管理、数据结构、控制流、文件操作和异常处理。主要内容包括:1.模块安装与导入方法;2.列表、元组、字典等数据结构的操作;3.条件判断和循环结构的使用;4.文件读写操作及路径处理;5.try-except异常处理机制。通过具体代码示例展示了Python的核心语法和常用操作,适合初学者快速掌握Python基础编程知识。
2026-02-27 13:24:49
1104
2
原创 Python递归绘制科赫雪花:分形之美
本文介绍了科赫雪花的数学原理和Python实现方法。科赫雪花是1904年由瑞士数学家提出的分形图形,具有无限自相似性。文章首先讲解了递归的基本概念和实现步骤,包括基线条件和递归表达式。然后详细说明了使用Python turtle模块绘制科赫雪花的具体算法:通过递归分割线段,计算中间点坐标,并在递归深度足够时绘制三角形片段。文中提供了完整的代码实现,包括坐标计算、递归终止条件和图形绘制过程,最终生成具有分形特征的科赫雪花图案。
2026-02-25 20:34:08
1169
原创 渗透测试-信息收集篇-上-手动收集
信息收集是渗透测试的第一阶段,旨在通过合法手段获取目标系统的公开或隐蔽数据,为后续漏洞利用提供基础。其核心在于全面性,覆盖网络架构、系统配置、员工信息等维度。
2026-02-23 19:48:18
586
2
原创 单片机中断原理
本文介绍了STM32外部中断的基本原理和实现方法。中断机制允许外设打断CPU正常流程处理紧急事务,处理完成后恢复原流程。通过配置GPIO引脚、EXTI中断线、NVIC优先级三个关键部分,并编写固定名称的中断服务函数(需清除中断标志位),实现了按键触发LED翻转的功能。主程序在while循环中运行,中断发生时CPU会暂停当前任务处理中断,体现了"插队"式的工作机制。该示例清晰地展示了STM32中断配置的核心流程和注意事项。
2026-02-14 21:57:19
1354
原创 三维激光雷达定位 SC-LeGO-LOAM (上)
本文详细介绍了在Ubuntu18.04系统中安装SC-LeGO-LOAM激光SLAM算法的完整流程。主要内容包括:创建工作空间并初始化环境;安装Metis库和手动编译GTSAM4.2.0;解决GTSAM安装验证问题;下载SC-LeGO-LOAM源码并处理ROS依赖;修改CMakeLists文件以适配手动安装的GTSAM;最终编译算法并验证。此外还提供了KITTI数据集的下载建议和VMware共享文件夹配置方法,用于算法测试。文章特别强调了安装过程中的常见问题解决方案,如GTSAM路径配置、ROS依赖缺失等,
2026-02-10 17:01:39
937
1
原创 规范删除ROS中的工作空间
摘要:彻底删除ROS旧工作空间后重建同名空间的关键步骤:1)使用rm -rf ~/catkin_ws完全删除旧目录;2)清理.bashrc中旧环境变量(注释或删除source ~/catkin_ws/devel/setup.bash);3)通过echo $ROS_PACKAGE_PATH和ls命令验证无残留;4)重建时确保.bashrc仅保留一行新工作空间的setup.bash引用。注意避免路径错误和重复加载环境变量。(149字)
2026-02-10 11:25:50
174
原创 虚拟机磁盘空间清理
摘要:本文介绍Linux系统磁盘空间清理方法,通过df -h查看磁盘使用情况,重点关注/var和/home目录。使用du命令定位大文件,依次清理/snap、/home、/usr和/var目录:1)限制Snap版本并删除旧版本;2)删除用户目录下缓存和大文件;3)apt autoremove清理依赖包;4)清理系统日志和APT缓存。建议定期执行这些操作并分配更大磁盘空间,防止空间耗尽问题。
2026-02-10 11:02:01
569
原创 OpenCV实战:5个案例玩转图像处理
OpenCV基础教程摘要 OpenCV是一个开源的计算机视觉库,包含2500+优化算法,支持C++/Python/Java等语言,跨平台运行。本教程涵盖: 基础操作 图像读取/显示/保存 摄像头连接与异常处理 色彩空间转换(BGR/GRAY/HSV) 图像属性获取 核心功能 图像滤波(均值/高斯/中值/双边滤波) 边缘检测(Sobel/Laplacian/Canny) 特征提取与轮廓绘制 颜色筛选(HSV空间) 实战案例 实时视频处理 轨迹条交互应用 图像噪声处理 多摄像头切换 开发技巧 常见问题解决方案
2026-02-09 22:33:49
1412
原创 漏洞提交步骤(新手指导)
对于新手而言,入门漏洞挖掘最关键的不是一开始就掌握复杂的代码审计技巧或工具命令,而是先建立正确的认知:漏洞不是“遥不可及的技术名词”,而是开发者在编码、测试过程中因疏忽、经验不足或逻辑考虑不全面留下的“小破绽”——可能是一行未过滤的输入代码,可能是一个权限校验的逻辑漏洞,也可能是对用户操作的异常场景考虑不周。而我们作为漏洞挖掘者,核心任务就是带着“怀疑精神”和“严谨思维”,去发现这些破绽,并用专业的方式反馈给相关方,推动问题修复。
2026-02-04 00:00:04
1006
2
原创 逻辑漏洞(Logical Flaw)
摘要:本文介绍了常见的逻辑漏洞类型,包括权限绕过、条件竞争、业务逻辑缺陷和状态绕过,重点讲解越权类漏洞。水平越权通过修改URL参数访问他人账户,垂直越权则让普通用户获取管理员权限。文章以皮卡丘靶场为例,演示了如何通过修改URL地址实现越权操作,并提供了不同编程语言的URL命名规范。
2026-02-03 17:02:59
630
原创 序列化漏洞(上)
本文介绍了PHP序列化漏洞的基本概念和应用场景。序列化是将对象转换为字符串以便存储传输,反序列化则将其还原。文章通过两个CTF赛题案例,分别展示了无类和有类情况下的序列化漏洞利用方法。在无类案例中,通过序列化关键变量并修改请求参数获取flag;在有类案例中,演示了如何序列化/反序列化类对象并访问其属性。文中还提供了在线工具和BP抓包等实用技巧,帮助读者理解序列化漏洞原理及利用方式。
2026-02-03 00:03:17
872
原创 PHP魔术方法(基础)
本节的学习并非只针对PHP的语言学习,而是为了满足渗透测试学习中的需要,特意为新手朋友们增加的一个知识补充专栏,以帮助读者能够更加透彻地理解后续的相关内容。
2026-02-01 21:52:23
974
原创 STM32编程学习笔记(Keil5中的文件结构解读)
本文详细解析了Keil5中STM32标准库开发工程的典型文件结构。项目采用分层架构设计,包含User(用户业务代码)、StdPeriph_Driver(ST官方驱动)、CMSIS(ARM内核接口)、Startup(启动文件)和APP(硬件接口实现)等目录。重点说明了各文件夹的作用及核心文件功能,如main.c程序入口、stm32f10x_xxx.c驱动实现、startup_stm32f10x_hd.s启动流程等。通过LED示例展示了从启动配置到硬件操作的全流程协作机制,帮助开发者理解STM32标准库项目的组
2026-02-01 12:34:16
843
原创 文件上传漏洞 (中)
在文件上传漏洞(学习笔记)上中我们对这种漏洞的处理方式有了初步的了解,但是并没有对靶场的源代码进行分析,本节小编将对源代码进行深入浅出的讲述,同时拓展更多的攻击手段,以带领大家能够根据源代码的漏洞情况使用合理的方式来进行攻击。
2026-01-30 23:32:09
965
1
原创 ROS中实现发布者(Pulisher)的编程
本文介绍了在ROS系统中实现海龟仿真器(turtlesim)的发布者编程方法。首先讲解了ROS话题通讯架构,包括ROSMaster、Publisher、Subscriber和Topic的交互流程。然后详细说明了使用C++和Python两种语言创建发布者的具体步骤:包括创建工作空间、创建功能包、编写代码文件、修改编译规则等。特别针对C++实现给出了完整的代码示例和编译配置方法,同时也提供了Python实现的简化流程。最后还介绍了测试方法和常见问题的解决方案,如CMakeLists.txt报错处理和环境变量配置
2026-01-28 00:16:09
1040
原创 文件上传漏洞 (上)
文件上传漏洞是Web 应用程序安全中最常见的高危漏洞之一,指 Web 应用在处理用户文件上传请求时,因未做严格的校验、过滤或限制,导致攻击者可以突破规则,将恶意文件(如脚本、木马、病毒等) 成功上传到服务器的可访问目录中,进而通过访问该文件执行恶意代码,实现控制服务器、窃取数据、植入后门、发起横向攻击等一系列恶意操作的安全漏洞。
2026-01-27 15:35:58
610
原创 ROS学习之调用豆包AI大模型(上)配置Anaconda环境
本文详细介绍了在Ubuntu 18.04系统中配置Anaconda环境的具体步骤:首先更新系统并安装依赖,通过清华镜像源下载Anaconda安装包;然后执行安装脚本,接受许可协议并初始化Anaconda;最后创建并激活Python 3.9的虚拟环境。整个过程包含MD5校验、环境变量刷新等关键操作,为后续在小车上调用豆包大模型奠定了基础。
2026-01-26 08:16:24
469
原创 RCE漏洞(学习笔记)附带两道题的解题步骤
RCE漏洞(远程代码/命令执行)是一种高危Web安全漏洞,允许攻击者在服务器上执行任意命令。文章通过墨者学院靶场演示了两种漏洞的利用方法:1)远程命令执行漏洞利用管道符"|"拼接系统命令(如ls/cat)获取key信息;2)远程代码执行漏洞通过修改POST请求参数注入系统命令。两种攻击方式都需要使用BurpSuite拦截并修改请求数据,最终通过执行系统命令读取服务器敏感文件。文章强调了RCE漏洞的严重性,并提供了详细的渗透测试步骤。
2026-01-25 20:52:19
466
原创 XXE漏洞(学习笔记)
XXE漏洞是XML解析时未禁止外部实体加载导致的安全风险,可造成文件读取、端口扫描等危害。演示了有回显和无回显两种攻击方式:有回显时直接通过XML实体注入读取文件内容;无回显时需搭建恶意服务器中转数据,利用php://filter和base64编码绕过防御,最终通过解码获取目标文件内容。攻击过程涉及构造特定XML语句、搭建中转服务器和编写恶意php脚本等步骤,展示了XXE漏洞的完整利用链。
2026-01-23 23:00:33
585
原创 SQL注入之盲注方式大全(下)
摘要:SQLMAP是一款开源的SQL注入测试工具,可自动化检测和利用SQL注入漏洞。文章介绍了SQLMAP的基本使用,包括检测漏洞、查询数据库信息、执行SQL命令、弱密码爆破等操作,并详细讲解了二次注入和堆叠注入两种高级技术。通过示例演示了如何利用堆叠注入在数据库中插入新账户,强调需谨慎操作避免破坏性行为。文中还提供了优化运行效率的建议,并指出工具运行缓慢的常见现象。
2026-01-13 15:19:50
698
原创 SQL注入之盲注方式大全(上)
布尔盲注小编将布尔盲注作为例子详细分析,可能内容会有点长,后面的其他内容直接照搬即可布尔盲注⼀般情况下,当带⼊参数为真和假时,⻚⾯会有不同的反映,⽐如有⽆显示也是⼀种不同,布尔盲注就是根据这种不同来反推我们输⼊的条件是真还是假布尔盲注的使用情景:当使用SQL语句在查询时没有出现显示内容和报错信息时,可以使用布尔盲注,一般不推荐使用,非常耗时且重复性很高。虽然用处不是很大,但是在奇安信等网络大厂面试的时候会问到,这篇笔记发布出来的处境有点小尴尬,但是多了解一下也好a.判断是否存在布尔盲注。
2026-01-11 21:52:43
627
1
原创 STM32编程学习笔记(点亮一个LED灯)
/0x8 对应二进制 1000 相当于 0000 0000 0000 0100,在Bit3设置1,查看手册,用于开GPIOB 的外设时钟。//0x0 对应二进制 0000 设置为低电平,连接负极,因为LED具有单向导通的性质,延伸一下,如 果连接正极,那么可以设置为高电平。//0x3为0x33333333一个部分,把8~15全部设置了一遍。GPIOX_CRL 端口配置低位寄存器(Low)0~7。//0x3 对应二进制 0011 推挽输出+50HZ,
2026-01-11 14:35:26
371
原创 SQL注入之报错型注入方式
摘要:报错注入是一种通过网站错误信息获取敏感数据的SQL注入技术。文章介绍了三种常用报错注入公式:1)group by+rand()组合公式;2)extractvalue函数公式;3)updatexml函数公式。详细讲解了如何将URL注入语句转换为留言框适用的格式,包括获取数据库名、表名、字段名和具体数据的方法。作者强调报错注入时间成本较高,建议在union注入失效时使用,并提醒读者仅用于合法渗透测试。文中提供了完整的语句示例和转换技巧,便于实战应用。
2026-01-08 17:32:49
841
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅