PWM 与 I2C 本节内容仍然使用 STM32F103C8T6 作为实验板。 呼吸灯 在没有 DAC 的情况下,我们可以使用 PWM 来模拟一个 DAC,从而实现类似于呼吸灯的效果。通过改变 PWM 的占空比,我们可以控制 LED 的亮度,从而实现呼吸灯的效果。 PWM 的原理不过多介绍,具体可以参考 脈衝寬度調變 - Wikipedia 的相关…
调试与 GPIO 初步 本次测试使用 STM32F103C8T6 进行调试。 开始调试 在使用 C 开发的时候,我们通常使用 SWD 通过 GDB 调试,或者通过串口打印调试信息。Rust 通过一些类似的方法也可以进行调试。 其中,使用 probe-rs 配合 Visual Studio Code 进行调试,方式类似于在 Keil 或 IAR 中使…
环境配置 使用 Rust 进行嵌入式开发需要配置相应的开发环境。由于 Windows 系统在嵌入式开发中可能会遇到一些兼容性问题,建议使用 Linux 或 macOS 系统进行开发。如果你使用的是 Windows 系统,可以考虑使用 WSL(Windows Subsystem for Linux)来创建一个 Linux 开发环境。 本文档采取 WS…
本文收集了计算机三级 Linux 应用与开发技术的考点,供参考使用。 关于计算机三级较好的备考题资料,详见 GitHub 仓库 NCRE-III-Linux。 本文可能会出现一些未纠正的错误,注意甄别! 常用 Linux 命令 命令 说明 常用参数 参数说明 w 显示当前登录用户的信息 -h -l -s -h 不显示标题行;-l 显示完整登录名;-…
Linux Shell 学习 可以执行的 Shell 脚本 建立一个 shell 脚本文件,文件名为 test1.sh,内容如下: echo "Hello world!" 写完之后要赋予可执行权限: chmod +x test1.sh 然后就可以运行了。 变量 变量可以包含字母、数字和下划线,但不能以数字开头。变量名区分大小写。使用大写字母表示常量…
此处使用 Raspberry Pi 400 作测试,使用官方 Raspberry Pi OS演示,基本同于 Debian 系其它 Linux。 Linux 上的 GPIO 设备 通过在 Linux 的 /dev 目录查看本机外设,可以看到以下内容。 ls -l /dev/gpiochip* crw-rw----+ 1 root gpio 254, …
H&NCTF2026 极少部分 Writeup,仅供参考 WEB 题目名称:prototype-preview 解题人:斥鸦666 解题过程 : 首先通过dirsearch扫描进行信息收集,扫描到/source,并访问到源码 通过代码审计,发现存在 deepMerge 函数和 renderTemplate 函数 通过 POST 到 /api…
卡尔曼滤波和虚拟串口 卡尔曼滤波 卡尔曼滤波是一种递归算法,用于估计动态系统的状态。它基于线性高斯状态空间模型,通过结合测量数据和系统模型来提供最小均方误差意义下的最优状态估计。卡尔曼滤波器由两个主要步骤组成:预测和更新。 以一维平衡数据为例演示滤波过程。 一个简单的状态空间模型可以表示为: #[derive(Clone, Copy)] struc…
第十届御网杯部分 Writeup,仅供参考。 Web WEB-Snake 游戏逻辑完全在前端 JS 运行,分数、速度、判断逻辑全部暴露在客户端,后端没有任何校验,前端改多少分,后端都认 属于典型的前端信任漏洞 所以我们直接通过bp抓包并修改score的值为300即可 发送到repeater,即可获取flag的值 WEb-PHP_Payment 本题…
栈迁移(ciscn_2019_es_2) 1. 什么是栈迁移? 栈迁移(Stack Pivoting)是一种攻击技术,攻击者通过修改程序的栈指针,使得程序在执行过程中跳转到攻击者控制的内存区域,从而执行恶意代码。这种技术通常用于绕过安全机制,如数据执行保护(DEP)和地址空间布局随机化(ASLR)。 2. 例子 通过逆向发现: int vul() …