- 博客(71)
- 收藏
- 关注
原创 桥接鸿沟:Simulink 与 STM32 底层驱动的完美拥抱
在嵌入式系统开发的浩瀚浪潮中,Simulink 宛如一颗璀璨的明星,凭借其可视化建模、快速仿真以及自动代码生成的能力,成为了系统级设计的得力利器。然而,当我们将目光从理想的算法模型转向与 STM32 这类 ARM 微控制器硬件交互的现实世界时,一个尖锐的问题如同一座大山横亘在我们面前:**为什么不能用 Simulink 的基础模块来直接实现底层驱动调用呢?
2025-12-05 15:11:11
433
原创 【超详细】征服 Fetch 流:在 Vue 中构建健壮的大数据请求系统
摘要:构建健壮的 Vue 流式数据请求系统 本文针对 Vue 应用中处理大数据流请求时面临的四大核心问题,提出了一套完整的解决方案: 并发请求控制:通过 UI 加载状态和 AbortController 实现请求取消机制,防止重复请求浪费资源。 内存泄漏防护:优化流式数据处理逻辑,采用"尽早停止"策略,避免无限制内存增长。 主动内存清理:在查询管理器中加入引用清理机制,帮助垃圾回收器及时释放内存。 健壮错误处理:完善空值检查和错误边界处理,确保应用稳定性。 这套方案通过分层防护策略,有效
2025-12-04 16:32:19
400
原创 【超详细】Ubuntu 系统安装 MySQL 8.0 时 GPG 错误解决方案全攻略(增强版)
Ubuntu安装MySQL 8.0时GPG错误解决方案 在Ubuntu系统通过官方仓库安装MySQL 8.0时,常会遇到NO_PUBKEY导致的GPG签名验证失败问题。本文将详细介绍解决方案: 问题表现: 执行sudo apt update时出现类似"NO_PUBKEY B7B3B788A8D3785C"的错误提示 解决方案: 导入MySQL公钥: sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys
2025-12-03 09:30:00
551
原创 【超详细】Ubuntu 上 MySQL 5.7 升级 MySQL 8 完整指南
Ubuntu系统MySQL 5.7升级MySQL 8.0完整指南:首先强调必须备份所有数据库(mysqldump命令)。步骤包括更新系统包列表、添加MySQL官方APT仓库、安装MySQL 8.0、运行安全配置脚本(mysql_secure_installation)、验证安装版本。特别注意MySQL 8.0默认使用caching_sha2_password认证插件,可能导致旧客户端连接问题,可通过修改用户认证方式解决。最后需重启Django应用服务完成升级。文章提供详细命令和常见问题解决方案,确保升级过程
2025-12-02 13:23:01
834
原创 在 Ubuntu 18.04 上安装 Python 3.12 的两种超实用方案
摘要:本文介绍在Ubuntu 18.04上安装Python 3.12的两种方法。方案一使用deadsnakes PPA,通过添加软件源直接安装,需额外配置pip;方案二采用pyenv工具,可灵活管理多版本Python,适合开发者。推荐开发者使用pyenv方案,它提供更专业的版本控制能力,能完全隔离系统Python环境。两种方法均包含详细步骤说明,从依赖安装到环境配置,帮助用户顺利完成Python 3.12的部署。(149字)
2025-12-01 14:12:40
718
原创 【超详细】Nginx 源码编译安装全攻略,一篇搞定!
本文详细介绍了Nginx在Linux系统上的源码编译安装流程。主要内容包括:安装前的系统要求和依赖库准备(区分Ubuntu/Debian和CentOS/RHEL系统);下载解压Nginx源码和可选第三方模块;配置编译选项(包含基础配置和完整推荐配置);编译安装过程;安装后的系统服务配置和环境变量设置;验证安装的测试方法;常见错误的解决方案以及Nginx的常用管理命令。文档提供了完整的命令行操作指南,适合需要自定义编译安装Nginx的管理员参考使用。
2025-11-28 16:45:52
637
原创 Django + uWSGI 部署至 Ubuntu 完整指南
本文详细介绍了在Ubuntu 22.04上部署Django项目的完整流程。主要内容包括:1) 系统环境准备(SSH配置、网络设置);2) 安装Python、Nginx等基础软件;3) 创建Django虚拟环境及项目配置;4) uWSGI的安装与配置;5) Nginx反向代理设置;6) 服务管理(systemd);7) 部署验证与常见问题处理。部署架构采用Nginx+uWSGI+Django组合,涵盖静态文件处理、数据库连接等生产环境关键配置,提供了完整的服务启动和管理方案。
2025-11-28 16:10:14
300
原创 Simulink实现STM32的FreeRTOS任务调度全攻略
摘要:本文详细介绍了利用Simulink实现STM32的FreeRTOS任务调度全流程。主要内容包括:硬件/软件准备、Simulink模型配置、多速率任务设计、优先级设置、STM32CubeMX项目配置以及代码生成部署等关键步骤。重点阐述了自动任务创建机制、优先级分配策略和调度算法原理,并提供了LED闪烁等实际应用示例。同时指出了内存配置、优先级设置等注意事项和调试技巧,为嵌入式开发者提供了完整的FreeRTOS多任务调度解决方案。(149字)
2025-11-27 13:48:36
642
原创 架构限制错误深度解析与解决方案:Simulink中的“通用硬件+FreeRTOS+LwIP”困局
摘要:本文分析了在Simulink+STM32F767开发环境中使用FreeRTOS和LWIP时出现的兼容性错误。错误根源在于Simulink代码生成器无法自动处理通用硬件配置下"FreeRTOS+LWIP"的复杂集成。文章提出两个解决方案:一是切换至官方支持的STM32F746G-DISCO开发板配置(推荐),利用预设集成方案;二是保持通用配置手动集成(高级)。重点建议采用方案一,通过修改硬件板配置并重新检查CubeMX设置来解决问题,这是最稳妥高效的解决途径。
2025-11-21 09:35:37
959
原创 有必要使用simulink的stm底层驱动包 来实现工程级别的代码实现吗
摘要: STM32工程级实现需兼顾可靠性、可维护性及开发效率。MathWorks官方驱动包提供已验证的硬件抽象层,规避底层陷阱,支持可视化配置与无缝移植,显著提升开发效率。其标准化接口便于核心业务逻辑(如协议解析状态机)聚焦,并支持处理器在环测试。特殊场景(极致性能优化/非标外设)可能需手写驱动,但多数情况下推荐使用官方驱动包作为可靠基础设施,让开发者专注于应用逻辑创新。Stateflow模型与驱动包结合可构建完整智能系统。
2025-11-18 10:05:24
865
原创 VUE3-vue3白色背景配色系
本文提供了一套完整的UI配色方案,包含蓝色、绿色、红色、紫色、橙色和青色六种色系。每组配色包含主色、辅助色和强调色,均采用白色背景,具有高对比度、视觉层次清晰的特点。文章展示了这些配色在按钮和卡片组件中的应用示例,包括HTML代码和CSS样式,适合用于仪表盘、数据可视化和各类UI界面设计。这套配色方案美观实用,能为Vue3等项目提供专业的色彩搭配参考。
2025-09-16 15:17:44
487
原创 Simulink建模-Three-Phase V-I Measurement 模块详解
摘要: Simulink中的Three-Phase V-I Measurement模块专用于测量三相电路的电压和电流,支持瞬时值、峰值及单位制(pu)输出。通过参数可配置测量方式(相地/线电压)、输出格式(复数、幅值等)及信号标签。该模块广泛应用于电力系统仿真、电机驱动、电力电子等领域,与Three-Phase Programmable Voltage Source等电源模块相比,其核心功能为精准测量而非信号生成。典型应用包括分析输电线路损耗、电机效率及逆变器动态性能,是电力系统建模与研究的核心工具。
2025-07-29 17:15:56
1799
原创 Simulink建模-Simulink中的POWERGUI模块详解
摘要:POWERGUI是Simulink中电力系统仿真的核心模块,提供仿真环境配置、模型初始化和结果分析功能。主要特点包括三种仿真模式选择(连续/离散/相量)、11种专业工具(如潮流分析、阻抗测量等)以及模型初始化和参数设计功能。该模块在电力系统仿真中承担仿真环境配置、稳态初始化、结果分析等关键作用。使用时需注意模型更新期间模块禁用问题,并可根据需要配置多个独立电力电路的仿真求解器。
2025-07-28 14:20:42
2088
原创 Simulink建模-Three-Phase Transformer 模块的功能、参数设置和使用场景
Simulink中的Three-Phase Transformer模块用于模拟三相变压器的电气特性,支持多种绕组连接方式(Y/Yn/Yg/D1/D11)和变压器类型(单相组合/三柱芯/五柱壳式)。其特色功能包括模拟饱和效应、磁滞特性、动态/稳态响应及初始磁通计算。参数设置涵盖额定功率、绕组特性、励磁参数等。该模块广泛应用于电力系统仿真、电机驱动和电力电子领域,能精确模拟电压变换、相位移动等行为。相比Three-Phase Programmable Voltage Source和AC Voltage Sour
2025-07-25 08:53:44
1150
原创 Simulink建模-Three-Phase Programmable Voltage Source 与 AC Voltage Source 的区别
摘要 三相可编程电压源能生成动态变化的三相电压,支持幅度、频率、相位可编程调节及谐波注入,适用于电网动态模拟、故障测试等复杂场景。交流电压源则提供恒定的三相电压输出,参数固定设置简单,适合稳定电源需求的电机测试等应用。主要区别在于可编程电压源具有参数动态调节能力,灵活性高但设置复杂;而交流电压源功能简单,操作便捷但无法模拟电网动态变化。根据测试需求选择:动态仿真选可编程型,稳定供电选基本型。
2025-07-24 10:09:21
738
原创 Simulink建模-Three-Phase Programmable Voltage Source 模块
本文介绍了如何在Simulink中使用"Three-Phase Programmable Voltage Source"模块建立220kV/500kV交流输电线路模型,分析其对频率的影响。详细说明了模块参数设置(包括基本参数、幅度/频率/相位变化和谐波生成)、模型搭建步骤(电源、线路、负载和测量模块)以及仿真运行方法。通过电压暂降模拟、谐波注入和线路故障模拟等实际案例,展示了该模块在分析电网动态特性方面的应用价值,为电力系统频率影响研究提供了有效工具。
2025-07-23 11:15:34
1191
原创 Simulink建模-PI控制器搭建
摘要:PI控制(比例-积分控制)是工业控制中广泛使用的策略,通过比例项快速响应误差,积分项消除稳态误差。建模包含9个输入参数(如Kp、Ki、限幅值等)和2个输出(控制量及积分项),适用于DC-DC变换器、MMC换流器等场景。参数整定可采用工程法(试凑法、Z-N法)或智能优化(遗传算法),需注意抗饱和设计。常见问题包括超调(需调小Kp)、稳态误差(增大Ki)及响应迟缓(提高Kp),需平衡动态性能与稳定性。(149字)
2025-07-22 14:01:48
1264
原创 Simulink仿真-model Setting关键配置
本文介绍了Simulink仿真设置的关键参数与优化方法。主要内容包括:1)求解器配置,区分变步长(推荐ode45/ode15s)和固定步长解法器的适用场景;2)数据I/O管理,说明信号记录与MATLAB工作空间交互的方法;3)诊断设置,强调代数环和过零检测的处理技巧;4)性能优化方案,如并行计算和内存管理;5)典型应用场景的推荐配置表。文章提供了从基础参数设置到高级优化的一站式指导,帮助用户根据系统特性选择最佳仿真配置。
2025-07-21 10:16:18
1161
原创 Simulink建模-Mux与Demux模块虚拟向量的组装与拆解
摘要 Simulink中的Mux和Demux模块用于信号路由,Mux将多个同类型信号合并为虚拟向量,Demux则分解向量为独立信号。主要应用于多信号条件判断等场景,可减少Switch模块使用。使用时需注意信号类型必须一致,Mux支持多种输入配置方式,Demux可灵活设置输出端口数量和维度分配。这两个模块能有效简化信号处理流程,但无法处理不同类型数据的合并。
2025-07-18 16:02:00
903
原创 Simulink 按位控制的控制DO信号变量转换为uint16类型的控制字
本文介绍了如何将多个DO控制信号封装为uint16类型输出信号的Simulink实现方法。模型采用Shift Arithmetic、Bitwise AND和Data Type Conversion三个核心模块完成转换,重点说明了各模块的配置要点:数据类型转换模块需将boolean转为uint16;位移运算模块需根据信号顺序调整参数;位与运算模块需通过bin2dec值精确定位。文章建议将完成模型封装为subsystem库以便复用,并指出位运算参数配置是模型实现的关键所在。该方法适用于需要将离散信号打包传输至外
2025-07-18 14:50:43
575
原创 Simulink 使用模块产生自增信号
本文介绍了一种嵌入式MBD建模中实现自增计数信号的方法。通过构建包含delay和add模块的subsystem方案,实现了带复位功能的自增计数器,可根据步长、复位上限和强制标志灵活控制信号输出。相比常见的function实现方式,该模型化方案更直观易用,用户可根据需求进一步优化改进。
2025-07-16 09:21:20
311
原创 Simulink uint16类型的控制字转为按位控制的控制DO信号变量
本文介绍了基于模型设计(MBD)中DSP/Arm编程时常用的位操作模块组合方法。重点讲解了三个关键模块:Shift Arithmetic模块用于二进制位移操作(包括整数位移和小数点位移),支持符号位保留;Bitwise AND模块实现按位与运算,支持多输入信号处理;Data Type Conversion模块完成数据类型转换。通过这三个模块的组合,可以实现上位机16位控制字(0-15位)的精确解析,最终转换为布尔变量输出。文章详细阐述了各模块的参数配置、功能原理及典型应用场景,为嵌入式系统开发中的位操作提供
2025-07-11 15:48:30
1193
原创 【SIMULINK建模】SR触发器详解:从原理到应用的全流程指南
本文系统解析了SR触发器的工作原理及应用,重点介绍了其双稳态存储机制(置位、复位、锁存模式)和优先逻辑规则。通过真值表展示了状态转换特性,并以温度控制系统为例说明其滞回控制功能。文章详细讲解了Simulink仿真实现步骤和验证要点,强调需避免S/R同时为1的竞争状态。最后列举了SR触发器在数字电路和工业控制领域的扩展应用场景,为构建高可靠性控制单元提供了完整实现路径。
2025-07-10 15:28:53
809
原创 C++ Ymodem协议传输时传递固定帧数时中断并失败
摘要:解决Ymodem协议传输中0xFF数据丢失问题 在实现类似SecureCRT的Ymodem协议传输功能时,发现文件传输到特定帧数会中断并返回NAK错误。经过两个月排查,发现当数据包中出现连续的0xFF字节时,下位机会丢失其中一个0xFF,导致CRC校验失败。通过抓包分析和ARM调试确认该问题后,采用在每次遇到0xFF字节时主动补充一个0xFF的方案解决了该问题。最终通过在发送数据时对0xFF字节进行特殊处理,确保了数据的完整传输。
2025-07-09 13:40:45
316
原创 C++实现模拟SecureCRT的Ymodem传输
本文介绍了基于C++的Ymodem协议实现STM32远程升级方案。文章首先说明了从SecureCRT工具切换为MFC上位机的开发背景。核心内容包括:1)使用Winsock建立TCP连接并设置缓冲区参数;2)发送初始命令和文件名信息,包含CRC校验处理;3)文件数据传输实现。代码展示了完整的Ymodem协议传输流程,包括套接字初始化、文件名发送确认、数据包封装及错误处理机制,特别强调了传输过程中的超时设置和校验处理。该方案解决了工具切换问题,实现了更便捷的远程升级功能。
2025-07-08 10:56:59
366
原创 Python Django 使用pymysql报错 django.db.utils.OperationalError: (1046, ‘No database selected‘)
在构建Django+pymysql+mysql服务时,遇到服务启动报错 django.db.utils.OperationalError: (1046, 'No database selected')。
2023-11-03 16:36:19
647
1
原创 Sqlyog 无法连接 8 版本的mysql caching_sha2_password could not be loaded
近期系统对Mysql 版本进行了升级,由原来的 5.7升至 8版本,在现场使用Sqlyog 作为数据库连接软件时,发现连接失败。
2023-11-02 16:54:23
1315
原创 Python 3.7 Error loading MySQLdb module. 安装mysqlClient报错的最便捷方法
在构建新的基于Pyhton3.7的Django Server时,引入mysql后,服务频繁报出,导致服务请求失败。
2023-11-02 16:43:00
2186
原创 Linux+Docker 内存占用高问题排查
Linux+Docker 内存占用高问题排查1.问题描述晚上下班前,现场传来噩耗,系统不响应了,马上远程支持。向日葵连接后,发现日志正常,日志回溯到问题发生的时间,发现报错如下 org.springframework.dao.InvalidDataAccessApiUsageException: MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Comman
2022-04-30 18:00:00
2500
1
原创 监听Redis通道并将得到的消息存入文件下载分析
监听Redis通道并将得到的消息存入文件下载分析1、问题背景在排查服务问题的时候,由于利用了redis的通道channel机制进行了服务解耦,但是通道中的参数下发周期太短,在redis中监听的话,日志刷的太快,根本无法形成有效的分析。2、解决思路之前在日志排查问题的方式中,经常会讲无法存储的日志通过 > 文件名 输出到文件中,然后从文件来分析,因此参考这个方式,我们可以尝试将通道的参数输出到文件中。3、尝试解决3.1 进入redis-cli后尝试使用redis-cli -a y
2022-04-22 13:36:51
1266
原创 ps -ef 后kill -9 无法杀掉进程一直重启解决办法
ps -ef 后kill -9 无法杀掉进程一直重启ps -ef 杀进程 ps -ef kill -9 PID重新启动进程后,发现端口还是被占用,再次ps -ef ,发现该进程仍旧存在liunx中有时候通过命令ps -ef|grep 进程名,然后kill -9 ,可能杀的是子进程而不是父进程,整个进程树没有死。ps -A|grep -i 进程树查看查看进程树的pid的方法是:ps -A|grep -i 进程名然后杀死进程:kill 进程pid号 或者kill -9 进程p
2022-04-20 17:43:39
2239
原创 使用apt-get install 时出现Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavaila
使用apt-get install 时出现Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)1、问题背景当我们使用ubantu系统,通常会使用apt-get install 来安装一些常用的工具包,比如 ll、vim、sudo等命令。安装命令如下: apt-get install ll apt-get install vim apt-get install su
2021-11-24 19:26:18
1024
原创 pandas 工具包读取csv 及excel 文件函数使用
1.pandas 简介Pandas 是一个开放源码、BSD 许可的库,提供高性能、易于使用的数据结构和数据分析工具。Pandas 名字衍生自术语 “panel data”(面板数据)和 “Python data analysis”(Python 数据分析)。Pandas 一个强大的分析结构化数据的工具集,基础是 Numpy(提供高性能的矩阵运算)。Pandas 可以从各种文件格式比如 CSV、JSON、SQL、Microsoft Excel 导入数据。Pandas 可以对各种数
2021-10-08 16:18:24
1113
原创 python如何利用arange()函数获取小数内容的数组
python如何利用arange()函数获取小数内容的数组1.range()函数为了获取一个拥有指定步长的可迭代对象,我们经常会使用到python的内置函数 range()range()函数可以接受1个 2个 或者3个 参数,根据参数返回可迭代对象如:range(10)range(0,10)range(1,10,2) 三个参数分别为 start stop step 代表了 起点、终点、步长- 起点默认为0- 终点是必须给定的值- 步长默认为1注意 range()函数
2021-09-27 18:40:45
2104
原创 u202a导致python读取路径失败问题
python3读取windows路径多出来个’\u202a’前言最近一直在做一个python3+tkinter的GUI项目,有一个功能需求是通过获取用户粘贴板上的文件路径然后读取相关文件内容,在中间调试的过程中发现每次拿到的路径前面都有一个\u202a,在这里做个记录。一、什么是‘\u202a’\u202a是一个非常神奇的字符,只会出现在windows操作系统中。而且在我们常规的查询中是无法发现,如果使用手敲将其完整复现出来的话就会发现并不会出现这种情况。那么\u202a是什么呢他是一个UNIC
2021-08-03 19:32:38
5777
2
原创 Tkinter cursour鼠标样式
Tkinter作为python常见的GUI工具包,也是python标准的GUI库,使用tkinter可以快速的进行GUI应用的创建一、鼠标样式我们需要改变鼠标样式的情况通常发生在聚焦时间、离焦事件、按钮触发、等待过程,如手型、心形、箭头、圆圈等。tkinter提供了许多的鼠标样式供我们使用。二、样式列表arrowmanbased_arrow_downmiddlebuttonbased_arrow_upmouseboatpencilbogositypiratebottom_lef
2021-08-03 17:01:48
840
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅