- 博客(28)
- 收藏
- 关注
原创 STM8-S001J3M3ADC采样时间分析
摘要:本文分析了STM8S001J3M3和STM32F103C8T6芯片的ADC采样转换时间特性。STM8S001J3M3采用固定14个ADC周期的总转换时间,仅能通过分频系数调节转换速度,适合低阻抗信号但灵活性较差。STM32F103C8T6则支持可编程采样周期(1.5-239.5周期),通过调整采样时间和时钟频率实现更灵活的配置,适合处理不同阻抗信号源。两者在架构复杂度、配置灵活性及适用场景上存在显著差异,STM8方案简单稳定但适应性有限,STM32方案则更具通用性但配置较复杂。(149字)
2025-12-05 11:03:45
686
原创 STM8-IAR创建工程模板
摘要:本文介绍了基于IAR开发环境的STM8工程模板创建方法。主要内容包括:1)从ST官网下载STM8标准库;2)创建项目文件结构,包含User、Lib等关键文件夹;3)在IAR中配置工程,包括添加文件、设置头文件路径和芯片型号;4)优化选项说明和调试设置。文章详细说明了工程创建步骤,并针对调试阶段可能出现的外设功能缺失错误提供了解决方案。最终完成了一个可用的STM8开发工程模板。
2025-11-11 08:13:49
484
原创 STM32-内部flash中写入版本号
本文介绍了在STM32芯片中实现固件版本号写入Flash的方法。通过STM32CubeIDE和STM32CubeProgrammer工具,使用GCC编译器的__attribute__特性将版本号变量强制分配到特定内存段。关键步骤包括:1)定义版本号格式;2)在链接脚本中指定存储地址;3)将含版本信息的bin文件烧录到MCU,注意地址必须匹配。该方法适用于固件升级和版本验证等场景,确保版本信息存储在Flash空白区域,避免覆盖程序代码。
2025-10-23 15:12:19
1166
原创 PID控制算法
PID控制算法是一种结合比例、积分、微分环节的线性控制器,广泛应用于工业过程控制。主要分为位置式和增量式两种:位置式PID直接计算控制量,但存在积分饱和问题;增量式PID输出控制增量,计算量小且不易积分饱和。此外,积分分离PID在大偏差时取消积分作用,避免超调。三种算法各有特点:位置式适合执行机构无记忆的场合,增量式适合步进电机等带积分部件,积分分离式适用于需要快速响应的系统。代码示例展示了三种PID算法的实现结构,包括参数初始化、目标值设置和控制量计算等核心功能模块。
2025-09-23 10:45:14
928
原创 卡尔曼滤波
卡尔曼滤波是一种通过预测与测量数据加权融合的最优估计算法。它基于线性系统和高斯噪声假设,通过递归更新状态均值和协方差来减小估计误差。算法核心分为预测步(基于模型预测状态)和更新步(融合测量值),其中卡尔曼增益动态调整预测与测量的权重。该算法具有递归性、最优性和适应性特点,广泛应用于导航、自动驾驶等领域。示例代码展示了其在呼吸机压力滤波中的实现,通过调节过程噪声和测量噪声参数可优化系统响应特性。
2025-09-22 11:18:58
1211
原创 中值滤波算法
摘要: 中值滤波是一种非线性数字信号处理技术,通过用邻域样本的中位数替代当前点值来平滑信号。其核心特性包括: 非线性:不满足叠加原理,与线性滤波器(如均值滤波)有本质差异。 稳健性:对脉冲噪声(如椒盐噪声)抑制效果显著,崩溃点高(可抵抗近50%的离群值)。 边缘保持:优于线性滤波器,能有效保留信号或图像的锐利边缘。 计算优化:通过滑动窗口直方图法可将复杂度降至近似O(1)。 应用场景包括图像去噪、传感器信号处理等,但存在细节损失和大窗口计算成本高的局限性。变体如加权中值滤波和自适应中值滤波可进一步提升性能。
2025-09-20 09:30:17
1600
原创 图像滤波常用总结
本文系统介绍了数字图像处理的核心理论与方法,主要内容包括:1)直方图规则化通过伽马校正调整对比度;2)平滑空间滤波器(均值/中值/高斯滤波)用于噪声抑制;3)锐化空间滤波器(Sobel/Laplacian算子)用于边缘增强;4)频率域滤波通过傅里叶变换实现频域处理;5)图像复原(逆滤波/维纳滤波)用于退化图像恢复;6)彩色图像处理与伪彩色增强技术;7)图像压缩编码(变换编码/熵编码)原理。这些方法涵盖了从基础增强到高级处理的完整技术体系,为图像分析提供了系统的理论框架。
2025-09-19 11:31:55
800
原创 FreeRTOS(五)
本文摘要: FreeRTOS软件定时器是一种纯软件实现的定时功能,通过守护任务管理定时器命令队列。主要特性包括:1)支持单次触发和自动重载两种模式;2)定时器回调函数在守护任务上下文中执行,不得阻塞;3)需配置优先级、堆栈大小等参数;4)提供创建、启动、重置、删除等API接口;5)通过定时器ID实现多定时器管理。典型应用场景如手机背光控制,通过定时器重置实现按键保持背光功能。使用时需注意守护任务优先级与命令队列处理机制,确保定时器操作可靠执行。
2025-09-08 11:31:12
588
原创 大彩串口屏-烧录与调试
摘要:DC10600M070串口屏提供三种调试方法:1)虚拟屏幕调试:需安装VisualTFT和VSPXD软件,通过虚拟串口通信调试;2)实体机烧录调试:支持SD卡快速烧录和串口烧录两种方式,烧录成功后可通过指令助手进行联机调试;3)LUA代码调试:使用print()函数输出调试信息,需通过TTL转USB接口连接屏幕背面特定引脚(GND和TXD)查看日志(波特率115200)。不同型号引脚位置可能不同,建议参考官方文档。
2025-09-05 13:38:46
1380
原创 STM-问题归纳
摘要:本文分析了STM32和STM8串口通信中的常见问题及解决方法。对于STM32CubeIDE串口乱码问题,主要原因是未安装MCU固件包,通过Help菜单安装即可解决。STM8串口打印异常则可能是格式符号与参数类型不匹配(如uint16_t应使用%u),或缺少stdio.h头文件导致。建议检查printf重定向实现,确保参数类型与格式符匹配,并包含必要头文件。文中还提供了相关代码示例和配置建议,对嵌入式开发中的串口调试具有参考价值。
2025-09-01 14:01:24
240
原创 数字图像处理(二)
本文摘要: 本文研究了数字图像处理中的图像退化与复原、彩色图像去噪、伪彩色增强和图像压缩编码等技术。主要内容包括:1) 对"boat.bmp"图像进行运动模糊和高斯/椒盐噪声处理,比较逆滤波、维纳滤波和约束最小二乘方滤波的复原效果;2) 对彩色图像添加不同强度的高斯噪声并去噪;3) 采用灰度分层法和变换法对灰度图像进行伪彩色增强;4) 研究霍夫曼编码和Shannon-Fanon编码效率,以及DCT变换在不同参数下的压缩效果。实验结果表明,维纳滤波和约束最小二乘方滤波在图像复原中表现较好,
2025-08-25 20:55:33
1078
原创 数字图像处理(一)
本文摘要: 本文系统研究了数字图像处理中的多项关键技术,主要包括: 伽马校正分析:通过不同gamma值(1/4-4)对航空图像进行校正,发现gamma<1时图像变亮,gamma>1时图像变暗,最优值应根据图像特性在0.5-2.0范围选择。 空间滤波去噪:比较了均值滤波与高斯滤波对高斯噪声的去除效果,以及中值滤波对椒盐噪声的处理效果。结果表明高斯滤波在保持边缘锐度方面优于均值滤波。 边缘检测:分别采用Sobel算子和Laplacian算子进行一阶和二阶求导边缘检测,发现Laplacian算子结合高
2025-08-24 22:02:39
1147
原创 数据结构-算法(一)
文章摘要:本文介绍了图论中的三个核心算法实现:1)将邻接矩阵转换为邻接表的函数实现,通过遍历矩阵建立链表结构;2)判断邻接表表示的图是否连通的算法,采用深度优先搜索检查所有节点的可达性;3)邻接矩阵的深度优先遍历实现,使用递归方式访问所有连通节点。文中提供了完整的C语言代码实现,包括数据结构定义和核心算法逻辑,适用于处理无向图的基本操作。这些算法构成了图论基础操作的重要组成部分。
2025-08-24 21:01:50
261
原创 STM32-烧录调试问题
解决ST-LINK烧录问题的完整方案:1. 升级ST-LINK固件时遇设备丢失问题,需多次尝试并正确进入DFU模式;2. 通过安装STM32ST-LINKUtility软件和Visual C++运行库解决驱动问题;3. 提供三种烧录方法:CubeIDE自带功能、CubeProgrammer和ST-LINKUtility,后者成功率较高;4. 连接失败时建议硬件复位5秒,多次尝试。成功案例显示固件升级后能正常烧录。
2025-08-21 14:12:22
1117
原创 FreeRTOS(四)
摘要:本文探讨了多任务系统中资源管理的风险与解决方案。分析了外设访问、读改写操作、变量非原子访问等常见问题,提出临界区、互斥量、优先级继承等保护机制。详细介绍了FreeRTOS中的三种内存分配方案(Heap_1/2/3.c)及其适用场景,以及栈溢出检测方法。重点阐述了互斥量的优先级反转问题和守护任务概念,并提供了任务调度器挂起/恢复、互斥量创建等关键API的使用说明。文章为嵌入式实时系统开发提供了资源竞争防护和内存管理的实践指导。
2025-08-18 14:10:02
737
原创 FreeRTOS(三)
本文介绍了FreeRTOS中的中断管理机制。主要内容包括:1)使用二值信号量实现中断同步,通过xSemaphoreTake()和xSemaphoreGiveFromISR()实现任务与中断的同步;2)计数信号量的应用场景,包括事件计数和资源管理,及其创建方法xSemaphoreCreateCounting();3)在ISR中使用队列传输数据的方法,如xQueueSendFromISR();4)中断嵌套的配置方法,需在FreeRTOSConfig.h中设置相关优先级参数。特别强调只有以"FromIS
2025-08-18 10:28:38
1135
原创 指纹检测与识别程序设计(三)
本文研究了指纹图像特征提取与匹配的关键技术。在特征提取方面,重点分析了指纹的总体特征(纹形、核心点等)和局部特征(端点、分叉点),并详细介绍了基于8邻域模板的特征提取算法,通过计算像素点灰度变化次数来识别末梢点、分叉点等特征点。在指纹匹配方面,阐述了细节点匹配算法,通过建立特征点对应关系并计算相似度分数来判断指纹匹配程度。研究还涉及指纹图像预处理技术,包括灰度图像分割、归一化、增强、二值化和细化等处理方法,为特征提取奠定了良好基础。实验结果表明,该算法能有效保留指纹纹线关键信息,具有较好的处理效果和程序移植
2025-08-16 14:23:49
744
原创 指纹检测与识别程序设计(二)
根据以上实验现象,使用全局阈值对图像进行分割时,选取灰度图像最佳,对于灰度图像可以很好确定两峰谷之间的最佳阈值,极大得到较好的分割图像;对于彩色图像来说,可较大程度保留主体部分线条,对背景下的线条在此方法中容易丢失,除此之外,全局阈值可以是根据整体灰度确定最佳阈值,但若是在图像分割的过程中,阈值选择过大或过小,都会很大程度影响分割的效果,阈值太小则分割不完全,阈值太大则分割过多,因此在阈值分割的过程中,阈值的选择很重要,仅使用直方图不易确定出合适的阈值,在本次实验中,采用的是全局阈值法进行最后阈值的计算。
2025-08-16 14:14:36
834
原创 指纹检测与识别程序设计(一)
在指纹识别系统中,图像分割在图像处理过渡到图像分析这个过程中起着非常重要的作用,它是图像工程的核心,图像分割的研究具有重要的理论和应用价值。本文介绍了图像分割的基本理论和常用方法,借助 Matlab 平台对阈值的分割、边缘分割,指纹图像的分割方法进行了分析比较,对图像预处理指纹图像处理功能模块的算法实现、处理结果,还涉及到分割、归一化、增强和细化等. 分别对这些方法进行了图像仿真,并分析了仿真效率与效果。用Matlab实现的这种方法, 既能分步对指纹图像预处理算法进行仿真测试,又可以很直观地看到图像处理算法
2025-08-16 13:40:23
614
原创 FreeRTOS(二)
队列保存有限个确定长度的单元数据:创建时需要设定最大单元数目和每个单元大小;队列常被作为(先进先出);队列写入数据时通过字节拷贝,读出数据再进行删除;
2025-08-15 14:40:39
713
原创 FreeRTOS(一)
本文摘要: FreeRTOS任务管理机制详解,主要包含以下内容:1)任务创建与函数原型要求;2)任务状态转换(运行/非运行、阻塞/挂起/就绪);3)优先级管理机制及调度算法;4)时间片轮转和心跳中断控制;5)空闲任务与钩子函数应用;6)任务删除与优先级调整API。重点阐述了抢占式调度原理,包括优先级设置规则(0为最低)和RMS分配策略,同时比较了协作式调度的特点。文档还详细说明了延迟函数、状态转换条件及各类API函数的使用方法,为实时系统开发提供了完整的技术参考框架。
2025-08-15 11:05:29
707
原创 Ubuntu、NS-3 、Eclipse安装配置
4、使用./waf–run 仿真文件,运行已经保存在 scratch 目录中 的 scratch-simulator.cc 仿真脚本。3、在/解压后的文件夹名/ns-allinone-3.28/ns-3.28 使用./waf 进行配置。2、进入路径/解压后的文件夹名/ns-allinone-3.28,执行命 令./build.py。掌握 VMware 虚拟机、NS-3 网络仿真器、eclipse 集成开发环境。1、下载并解压(解压命令或使用图形界面右键解压皆可)好压缩包。二、NS-3解压并安装。
2025-08-13 21:33:27
330
原创 内网-VScode下载离线插件
2、官网插件地址:搜索到对应插件进入→Project Details:GitHub→release下进行寻找后缀为. vsix点击就可下载。:输入对应插件名称→进入→download,即可下载对应插件 .vsix。进入到对应release进行查找,是否存在对应.vsix。按照图中进行打开刚刚下好的扩展包,就会自动加载。专门下载.vsix:插件不是很全。找到Assets并点击就可以下载了。:官方插件地址(容易加载不出来)三、打开本地vscode中的扩展。二、下载对应 .vsix安装包。
2025-08-13 15:06:48
515
原创 VisualTFT -UI
菜单控件:主要设置:可配置菜单的外观(选择”图片“,则需要导入相应菜单素材,或默认自带外观)、菜单风格(可选“弹出”、“固定”)、菜单方向、菜单项数、语言数(菜单选项:要填入你想要弹出的菜单种类)按钮控件:主要设置:弹起时、按压时图片显示(选剪裁)、触控用途(选“弹出菜单“、配置目标”菜单ID“、”输入ID“)文本控件:主要设置:水平、垂直对齐方式、输入方式(用户主机方式)、文本显示(一开始文本显示内容)主页面、按钮画面、菜单画面都选择“按钮控件”进行跳转配置:其中目标画面选择:要跳转的画面名称。
2025-08-07 09:16:12
458
原创 Visual TFT -LUA脚本
本文介绍了基于Lua脚本的三种人机交互功能实现方案:1)滑动条控制功能,通过按钮调节滑动条数值并实时显示;2)多语言切换功能,使用按钮实现中英文界面切换;3)音频播放器功能,实现SD卡音乐读取、播放控制、音量调节等。重点阐述了各功能的Lua API调用方法、UI设计要点及脚本实现逻辑,包括控件回调处理、状态管理、文件操作等技术细节。文中提供了完整的Lua代码示例,并说明了虚拟调试与实体机调试的差异,为嵌入式HMI开发提供了实用参考方案。
2025-08-06 16:34:47
410
原创 15.位操作
C语言使用byte存储系统字符集所需要的大小,可以是8位,16位等;描述存储器芯片和传输速率所用的字节:8位字节;二进制数:以2为基地表示的数字;例如,二进制数:1101 可表示为:1*2^3+1*2^2+0*2^1+1*2^0假设这里是1byte=8bit,需要从左往右依次编号为7~0;高阶位(high-order bit):是编号7,低阶位(low-order bit):是编号0;该字节最小二进制数:00000000,最大二进制数:11111111;
2024-11-07 14:53:57
1009
原创 16. C预处理器
假设先把LIMIT定义为20,稍后在该文件中又把它定义为25。这个过程称为重定义常量;// ... 一些代码 ...// 这将导致编译错误,因为LIMIT在同一个作用域内被重复定义只有新定义和旧定义完全相同才允许重定义;相同定义是指:替换体中的记号必须相同,且顺序也相同;如果确实需要重定义常量,使用const关键字和作用域规则更容易些;
2024-11-03 16:10:33
828
原创 14.结构与其他数据形式
联合(union)是一种数据类型,它能在同一个内存空间中储存不同的数据类型(不是同时储存)创建联合和创建结构的方式相同,需要一个联合模板和联合变量。int digit;声明的联合只能储存一个int类型的值或一个double类型的 值或char类型的值;注意,联合只能储存一个值,这与结构不 同;有 3 种初始化的方法:把一个联合初始化为另一个同类型的联合;初始化联合的第1个元素;//把 23 储存在 fit,占2字节// 清除23,储存 2.0,占8字节。
2024-11-01 16:57:43
994
1
基于STC89C51单片机的多功能数据采集系统源码与设计报告(温度/亮度/时钟/存储/报警)
2025-09-01
数电电子线路-水箱水位检测
2025-08-25
数电电子线路-八路抢答器设计
2025-08-25
【通信原理实验】ASK、FSK及BPSK调制解调实验报告:数字通信系统中调制解调技术的原理与应用
2025-08-25
六位数字电子钟的设计和制作
2025-08-25
电子技术课程设计-自动延时声光控制灯
2025-08-25
通信工程模拟信号数字传输实验:抽样定理验证与滤波器幅频特性对信号恢复影响的研究深入理解抽样
2025-08-25
通信电子基于MC1596乘法器的调幅波电路设计:抑制载波双边带调幅实现与Multisim仿真分析
2025-08-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅