自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一只菜只因

正在学如习

  • 博客(113)
  • 收藏
  • 关注

原创 自然常数e和欧拉公式的推导

复利极限 (1+1/n)ⁿ,n→∞ 时收敛到 e ≈ 2.71828;e 的本质特性是连续——连续增长、连续变化的世界里处处是 e,所以它叫「自然常数」。通过这两步严谨的推导,我们证明了欧拉公式。它之所以被称为「数学界最美的公式」,是因为它极其优雅地把指数函数、三角函数和虚数单位iii完美融合在了一起。而如果令θπθπ,就会得到那个被誉为「上帝公式」的欧拉恒等式eiπ10eiπ10eeeiiiπ\piπ111000汇聚在了一起。与前面故事的呼应。

2026-11-03 15:00:48 303

原创 和差化积 & 积化和差「前项后项」记忆法

左边右边−。

2026-11-03 13:52:29 178

原创 记忆分式三兄弟和根式三兄弟积分,三角函数积分CCTV,泊松分布

把分子上的k看成帽子 拉姆他看成 “人” 就是人戴着一个帽子。能提取两个1/a 就一个放在arctan前面,一个放在后面。e(咦)这里有一个(-)人(拉姆他) ,靠!下面那个就这样,没意义,所以这里面肯定不是ln。第一个:有一个C 少CT 所以用ln(C+T)第二个:有CC,缺一个T 所以结果是T。第三个:有CT,缺一个C 所以结果是C。能提取一个1/a出来就放在sin里面。想象a=0 l联想到 ln|x|分部积分的第一项+a的平方乘上。后两个也按照这个方法。

2026-11-03 10:40:20 184

原创 【DSP学习】C2000_ADC中断_笔记

来源:B站视频 BV18h411B7Fz 第 19 集《ADC 的中断》,UP 主 Study-Charging(系列《DSP 自学视频(顾老师)从入门到编写(C2000)》)。本文整理自视频字幕逐字稿(共 367 条、约 21 分钟),按讲解逻辑重新分节、修正了口语和语音识别的口误,技术结论以视频为准。本集实际讲了:ADC 参考电压选择、ADC 信号调理电路、ADC 的中断。

2026-11-02 15:47:06 285

原创 【DSP学习】C2000_ADC概述工作方式_笔记

本讲系统概述ADC功能与F28335内部ADC模块特性:ADC实现模拟量到数字量转换,核心指标包括精度(12位)、输入范围(0~3V)、转换时间与采样率。F28335 ADC支持16通道(分A/B组),通过序列发生器(SEQ1/SEQ2)顺序或并发采样,结果左对齐存于16个寄存器中。采样频率由软件或ePWM触发控制,实际采样率受限于系统性能。强调输入电压不可超3V,否则损坏芯片;转换结果需右移4位后按比例换算为实际电压。重点区分“时钟频率”“采样频率”“转换时间”三概念,为后续中断与程序编写奠定基础。

2026-11-02 14:39:14 447

原创 【DSP学习】C2000_PWM中断程序_笔记

本文基于F28335芯片,实现EPWM1模块输出10kHz互补PWM波并带1µs死区。通过配置GPIO0/1为EPWM1A/B功能,设置时钟分频得75MHz TBCLK,计算得TBPRD=3750。利用动作限定(AQ)使两路同相,再经死区模块(DBRED=DBFED=75)生成互补波形,并反相B路以避免桥式电路直通。启用周期中断(INT3.1),在ISR中动态调节占空比。关键步骤包括系统时钟初始化、外设使能、中断向量绑定及同步控制,确保波形稳定输出。

2026-10-31 16:44:41 284

原创 【DSP学习】 EPWM 原理

PWM(Pulse Width Modulation,脉冲宽度调制)本质上就是用一串高低电平交替的方波,去等效地表达一个模拟量的大小。理解单路 PWM,抓住下面 4 个要点就够了:1、频率:PWM 波形每秒钟重复的次数,单位是 Hz。频率越高,波形越"密",经过滤波后得到的模拟量越平滑;频率太低则容易产生可听噪声和明显纹波。2、周期:一个完整 PWM 波形所占的时间,等于频率的倒数,即T = 1 / f。比如 10 kHz 的 PWM,周期就是 100 μs。3、幅值。

2026-10-31 11:26:46 214

原创 【DSP学习】DSP28335定时器

此后每经历一个 TIMCLK,计数器就减 1,直到减到 0 时发出中断信号。若还需继续计数,则再次把 PRDH 的值装载到 TIMH 中,重复上述过程。此后每来一个系统时钟信号,计数器就减 1,直到减到 0 时输出一个 TIMCLK 信号。定时器时间 =(1 + PRD)× TIMCLK =(1 + PRD)×(1/150M)## 1.3 定时器中断。TIMCLK 的时间 =(1 + TDR 分频值)× 每个系统时钟信号的时间(即 1/150M s)

2026-10-27 10:21:34 189

原创 【概率论详细笔记】泊松分布是怎么来的?应该怎么用?

泊松分布是二项分布在$n→∞$、$p→0$、$np=λ$恒定时的极限,用于描述单位时间或空间内稀有事件发生$k$次的概率。其公式为$P(X=k)=\frac{\lambda^k e^{-\lambda}}{k!}$,期望与方差均为$\lambda$。适用条件:独立、计数型、稀有且机会多、平均率稳定。如停车场每分钟平均进3辆车,$\lambda=3$,1分钟内进5辆的概率约10.08%。注意$\lambda$非概率,且需区分于指数分布(等待时间)和几何分布(首次成功次数)。

2026-10-19 15:58:28 422

原创 概率论笔记:连续型随机变量函数的分布与尺度变换 连续型随机变量函数的分布:定义法与公式法推导

定义法是最根本的方法,它的推导逻辑非常直接。求分布函数FYyF_Y(y)FY​yFYyPY≤yFY​yPY≤y因为YgXY = g(X)YgXFYyPgX≤yFY​yPgX≤y这就转换成了求随机变量 (X) 落在某个区域内的概率。对于连续型随机变量 (X),这个概率就是密度函数fXxf_X(x)fX​x在区域gx≤yg(x) \le ygx≤yFYy∫gx≤yf。

2026-09-28 16:48:09 378

原创 Modbus CRC16校验详解与实战应用

Modbus RTU 使用 CRC-16/MODBUS 校验,16位检错码。发送方对数据帧(不含CRC)计算CRC,初始值为0xFFFF,多项式为0xA001(反转自0x8005),采用输入输出反转、低字节先发。接收方将整帧(含CRC)重新计算,若结果为0x0000则校验通过。算法核心为逐字节异或后循环右移8次,根据最低位决定是否异或0xA001。C语言实现简洁高效,广泛用于工业通信。

2026-09-20 16:29:25 68

原创 咔咔记:从 Anki 搬到国产闪卡 App 的第 1 周,我留下了这几个理由

这篇文章写下来差不多七千字,如果你能看到这里,说明你对"怎么把东西真正记住"这件事是有执念的。我想说的重点,跟这款软件本身的关系其实不大。它的原理在这门学科里已经被验证了几十年,工具只是把这套原理做成了顺手的样子。真正起作用的东西还是你每天那二十分钟,以及你愿不愿意对自己诚实。答不出来就打"忘记",这动作很反人性,但它决定了这个工具对你有没有用。工具能替你算好复习时间,算不好你愿不愿意坐下来。咔咔记在这件事上做得挺克制:界面不花哨,数据全都摆在你面前,收益和懒惰都无处可藏。

2026-09-18 11:18:53 156

原创 Anybus 芯片介绍

Anybus 芯片 = 一个将“实时工业以太网/现场总线协议栈”完全硬件化的从处理器。它让主 MCU 可以通过读写普通内存的方式,完成与任何主流工业网络的实时数据交换,而无需在自己的代码空间中维护任何协议栈逻辑。从系统架构角度看,它在主 MCU 和工业网络之间建立了一个明确的、稳定的、经过认证的隔离层。所有与协议标准相关的复杂性、实时性要求、认证负担,都被封装在这个芯片内部。

2026-08-11 14:35:51 321

原创 开关电源核心原理:从PWM到升压降压全解析

在一个开关周期里,开关导通的时间占整个周期的比例。公式占空比 = (导通时间 / 总周期时间) × 100%打个比方:假设 IGBT 这个开关,在 1 秒钟内,导通 0.2 秒,关断 0.8 秒。那么占空比就是 20%。也就是通断的时间比例。

2026-08-11 14:32:44 326

原创 DeepSeek 智能效果全景展示

在日常开发和技术探索中,我们常常遇到这样的时刻:面对一段逻辑错综复杂的遗留代码,或是需要从零开始构建一个高可用的算法模块,传统的辅助工具往往只能提供碎片化的建议,难以形成完整的解决方案。更让人头疼的是,当我们需要处理几十页的技术文档或需求说明书时,如何快速提炼核心信息并转化为可执行的代码逻辑,成了检验效率的关键瓶颈。这些问题不仅消耗了大量时间,还容易因为理解偏差导致返工。

2026-07-11 16:31:18 199

原创 DSP28335 SPI通信实验:从零到实战

SPI串行外设接口是一种高速同步串行通信总线,通过4根核心引脚(时钟、数据输入输出、片选)实现DSP与外部芯片的数据传输。本文以普中DSP28335开发板为例,详细讲解了SPI的工作原理、硬件接线、寄存器配置及代码实现。重点包括:SPI模式0的配置(空闲低电平、上升沿采样)、主机模式设置、波特率计算,以及通过SPI_ReadWrite函数实现同步收发数据。实验采用自发自收测试验证SPI功能,为外接SPI设备通信奠定基础,强调所有串行通信必须共地才能正常工作。

2026-06-11 17:00:47 330

原创 STM32实现LM19温度精准测量

STM32使用LM19温度传感器的实现方案 本文介绍了STM32通过ADC采集LM19温度传感器的完整方案。LM19是一款2.7-5.5V供电的模拟温度传感器,输出电压随温度升高而降低,采用抛物线特性曲线。硬件连接仅需将LM19的VOUT引脚接入STM32的ADC输入引脚。 软件实现包含三个关键步骤:1) ADC采样获取原始值;2) 转换为电压值;3) 通过公式反算温度。提供了精确的抛物线公式和简化线性公式两种计算方法。为提高精度,建议采用多次采样平均,并对电源进行稳压处理。 文中给出了完整的HAL库实现代

2026-06-05 10:04:56 411

原创 【DSP学习】 EPWM 原理-基于普中DSP开发攻略

F28335 的ePWM 模块是个加强模块,与F2812 的PWM 模块有较大不同,在F2812中,PWM 模块采用事件管理器控制,与 eCAP 和 eQEP 共享定时器信号,而 F28335中每个 ePWM 模块都是一个独立的小模块,这样的体系结构更方便我们使用与理解。每个 ePWM 模块由两路 ePWM 输出组成,分别为 ePWMxA 和 ePWMxB,这一对 PWM输出,可以配置成两路独立的单边沿 PWM 输出,或者两路独立的但互相相对称的双边沿 PWM 输出,或者一对双边沿非对称的 PWM 输出。

2026-05-14 14:48:00 643

原创 【DSP学习】增强型脉宽调制 EPWM 实验-基于普中DSP开发攻略

基于普中DSP开发攻略.pdf。

2026-05-14 14:47:40 502

原创 【DSP学习】外部中断实验-基于普中DSP28335开发攻略

配置触发方式、使能中断,以及打开CPU级中断的总开关。

2026-05-12 13:26:30 538

原创 【DSP学习笔记】 F28335中断系统理解-基于普中DSP28335开发攻略

F28335的中断源可分为片内外设中断源,比如PWM、CAP、QEP、定时器等,片外中断源,外部中断输入引脚XINT1、XINT2引入的外部中断源。这些中断源将中断请求信号传递给内核就需要中断线,F28335的中断线是有限的。F28335 内部有16个中断线,其中包括2个不可屏蔽中断(RESET和NMI)与14 个可屏蔽中断。可屏蔽中断通过相应的中断使能寄存器使用或者禁止产生的中断,在这14个可屏蔽中断中,其中TIM1和TIM2产生的中断请求通INT13、INT14。

2026-05-11 16:43:26 532

原创 【DSP学习】DSP28335 点亮LED

主函数非常简单,首先调用InitSysCtrl(),完成系统时钟配置和使能各外设时钟,包括GPIO时钟。最后进入while循环内调用LED1_TOGGLE宏,让GPIO68引脚输出状态间隔delay时间翻转一次,即高电平变低电平,低电平。要点亮LED指示灯,在main函数内需要先调用LED初始化函数,然后调用LED1_ON宏定义。④利用GPxTOOGLE寄存器置1后(写0无效)翻转IO输出电平,原来高电平变成低电平,原来低电平变成高电平。如果要使 D1 指示灯亮,只需要控制 GPIO68 管脚输出低电平,

2026-05-08 11:08:00 508

原创 SCPI添加错误码

在LIBSCPI中的error.h,SCPI错误码定义表,采用了 X-Macro 技术进行统一管理。2. X-MacroX-Macro(X 宏) 是一种 C/C++ 预处理器编程技术,用于避免代码重复和维护同步问题。它的核心思想是:将数据列表定义在一个地方,然后用不同的宏来“展开”这个列表,生成不同的代码。假设你有一个错误码列表,需要同时生成:传统做法:在三个地方分别维护相同的数据 → 极易出错且难以维护第一步:定义一个宏列表第二步:用不同的 定义来“展开”这个列表预处理后展开为:优点

2026-04-30 16:45:03 429

原创 FreeModbus释放底层的 TCP 监听端口

有Modbus和scpi两种协议,在使用过程中要切换,每次切换要给给对应协议绑定端口。

2026-04-29 16:37:10 282

原创 【LWIP学习】插拔自动重连接

在前面的代码中加入了modbusfreeTCP的代码。modbuspoll软件和开发板正常连接的时候:如果modbuspoll软件先断,再断网线,再插网线,再打开modbuspoll软件连接,可以连接上如果modbuspoll软件不断,先断网线,再插网线,可以ping通,但是连接不上modbuspoll软件。包括在测试SCPI的时候也遇到相同的问题。

2026-04-21 09:50:50 403

原创 stm32 usb的学习与使用笔记

为了避免调试期间频繁地手动操作,我们可以在程序开跑后、USB初始化前,用代码把PA12置低,使D+线为低电平,持续一段时间,模拟USB拔出动作,令主机认为设备已断开连接,释放端口;然后,当程序运行到后面的USB初始化函数时,PA12会被正常配置(DP线电平被置高),USB主机就会"发现"有设备插入,开始尝试枚举、配置;在main.h中,大约38行,找到 配对的注释行 /* USER CODE BEGIN ET */外部,哪个文件里要使用CDC接收的数据,就在这个文件里,用extern声明那俩变量。

2026-02-12 12:47:43 1007 1

原创 【SCPI学习】STM32与LWIP实现SCPI命令解析

SCPI是什么?SCPI指令简介仪器仪表控制:基础篇 SCPI简介SCPI(Standard Commands for Programmable Instruments)语言是一种广泛使用的指令集,用于控制和管理测试设备。SCPI命令基于ASCII文本,易于理解和实现,使得不同厂家的设备能够通过统一的命令进行控制。1. TCP Keepalive参数2000// (ms) 空闲等待时间1000// (ms) 重试间隔4。

2026-01-16 16:38:45 1203 1

原创 裸机stm32移植双串口modbus从机(附源码)

串口1不能用HAL_UART_Transmit_IT只能用HAL_UART_Transmit,否则不能正常发送数据,串口2两个就都可以(串口1通过485芯片,串口2是通过232),原因未知。由于要使用两个串口,之前移植的一个串口的modbus从机的程序就不方便用了,在原来的上面修改也比较麻烦。一开始485的控制端PC9是置低的,就导致串口1的485不能通讯,我要使用的是f103的串口1和2,和要移植的工程中一样。这里我的串口1是通过了485芯片,低电平发送,高电平接收。里面有DMA版本和不用DMA的。

2025-12-31 11:08:42 660

原创 解决Modbus 主站回读数据时,eRcvState 一直保持在 STATE_M_RX_IDLE状态,导致无法正常接收数据的问题

摘要: 调试发现Modbus主站在回读数据时,eRcvState始终卡在STATE_M_RX_IDLE状态,导致无法接收数据。分析发现主循环中eMBMasterPoll()调用频率过高(1秒1次),阻碍了状态机切换。通过调整轮询间隔至200ms,并优化主循环结构(移除阻塞延时,增加LWIP处理),成功解决接收问题。此案例凸显了合理设置轮询周期对状态机正常运行的关键作用。

2025-12-12 11:01:54 241

原创 基于STM32F407+dp83848实现ModbusTCP从站移植

摘要 本文详细介绍了在STM32F407RE平台上基于LWIP和FreeModbus实现Modbus TCP从站的移植过程。首先确保以太网通信正常(可ping通),然后参考现有教程将FreeModbus源码集成到工程中。移植过程中解决了编译错误,修改了portevent.c、porttcp.c等文件配置,并关闭了未使用的ASCII/RTU支持。通过实现保持寄存器的读写回调函数,最终成功使用Modbus Poll工具测试TCP通信功能,验证了寄存器读写操作的正确性。文章提供了完整的移植步骤、问题解决方法和关键

2025-12-08 16:21:22 994

原创 【LWIP学习】dp83848与STM32f407re的接线并实现ping通

MII需要25MHz的时钟,没有接外部的晶振,由STM32的MCO提供时钟。GPIO有很多,按照原理图配置好,这里不用配置PA8和PB14。在主循环中添加MX_LWIP_Process();parameter settings部分没修改。cubemx6.4 【用这个版本】开发板 → 网线 → 电脑有线网口。点击PA8选择RCC_MCO_1。控制面板 → 网络和共享中心。更改适配器设置 → 以太网。MCO1配置成25MHz。PB14配置成外部中断。优点:无干扰,简单可靠。配置:手动设置静态IP。

2025-12-03 09:09:34 1310 1

原创 移动平均滤波 + 异常值检测

实现简单效果明显计算量小可以去除突发干扰。

2025-10-09 13:55:00 290

原创 分段线性校正:将非线性系统完美校正为 y = kx 的实用方法

分段线性校正是一种将非线性系统通过分段线性逼近的方式,校正为理想线性特性的技术。用多段直线连接起来逼近理想曲线,从而将系统的输入-输出关系校正为我们期望的线性关系。分段线性校正是一种简单而有效的非线性补偿技术,特别适合将传感器或测量系统的特性校正为标准线性关系 y = kx。通过合理选择校准点和斜率 k,可以实现高精度的线性化处理。这种方法在工业自动化、仪器仪表、传感器信号处理等领域有着广泛应用,是工程师工具箱中必备的经典技术。希望本文帮助您理解分段线性校正的原理和应用。

2025-09-28 09:41:35 960

原创 解决了C语言编译警告:“a declaration cannot have a label“和“transfer of control bypasses initialization“

摘要:该代码片段出现两个编译问题:1)标签后直接声明变量导致警告#1182-D;2)switch语句可能跳过变量初始化的警告#546-D。解决方案包括:将变量声明移至switch前、用代码块隔离作用域,或在标签后添加空语句。最佳实践是使用方法2,为case语句添加大括号形成独立作用域来声明变量。这种处理方式既解决了警告问题,又保持了代码的可读性。

2025-09-23 14:29:16 515

原创 野火STM32Modbus主机读取寄存器/线圈失败(四)(完结篇)-解决eMBMasterPoll( void )不能读取EV_MASTER_EXECUTE的问题/不能进入回调函数的问题

摘要: 针对野火STM32 Modbus主机事件覆盖问题,提出两种定时发送方案:方案A利用SysTick软定时,每2秒触发一次寄存器读取,通过lastTickMs时间戳和reqPending状态防重入;方案B采用TIMx硬件定时器中断置标志,主循环检测标志后发送请求。两种方案均避免阻塞eMBMasterPoll(),确保数据稳定接收。最终实现寄存器数据正常存储,推荐方案A更易实现。源码可参考前文。 关键词:STM32、Modbus主机、定时触发、事件覆盖、SysTick

2025-09-04 15:31:22 573

原创 野火STM32Modbus主机读取寄存器/线圈失败(三)-尝试将存贮事件的地方改成数组(非必要解决方案)(附源码)

尽管crc校验正确了,也成功发送了EV_MASTER_EXECUTE事件,但是eMBMasterPoll( void )中总是接收的事件是EV_MASTER_FRAME_RECEIVED或者EV_MASTER_FRAME_SENT,一次都没有执行EV_MASTER_EXECUTE。EV_MASTER_EXECUTE事件被别的事件给覆盖了,于是尝试把发送的事件存在数组里,避免被覆盖。

2025-09-04 15:12:42 977

原创 【modbus_master学习】Modbus CRC16校验函数详解

Modbus CRC16校验摘要(150字): Modbus CRC16校验函数用于验证RTU帧完整性。该函数接收数据帧指针和长度,初始化CRC寄存器为0xFFFF,通过查表法逐字节异或计算,最终返回16位CRC值。发送端将计算出的CRC附加到帧尾,接收端重新计算整个帧的CRC值,若结果为0则验证通过。其核心原理是CRC多项式运算特性,确保数据正确传输。该算法高效可靠,是Modbus协议中确保数据准确性的关键机制。

2025-09-04 14:40:49 725

原创 解决TRAE 打开工程中文乱码-修改trae的默认编码

摘要:本文介绍了解决TRAE打开Keil工程时中文注释乱码的两种方法。问题根源在于Keil使用GB2312编码而TRAE默认UTF-8编码不兼容。方法一是单独处理每个文件,手动选择GB2312编码重新打开;方法二(推荐)通过修改TRAE默认编码设置,将"默认字符集编码"改为GB2312,可一劳永逸解决所有文件乱码问题。两种方法都配有详细操作步骤和图示说明。

2025-09-02 08:50:29 10638 2

原创 解决keil在调试debug过程中,,用watch看变量,变量无法正常显示(cannot evaluate)的问题

摘要:调试静态变量eMasterQueuedEvent时遇到无法查看值的问题。分析可能是变量作用域、优化级别或未初始化导致。最终采用添加全局调试变量的方案(声明volatile变量并同步更新),成功在watch窗口监控变量变化。其他备选方案包括降低优化级别、使用外部变量或强制类型转换表达式等。该方案有效解决了静态变量调试可视性问题。

2025-08-29 10:05:26 2896

原创 野火STM32Modbus主机读取寄存器/线圈失败(二)-解决CRC校验错误

测试中发现,读取保持寄存器和输入寄存器均失败,但写入操作正常。在使用FreeModbus库进行通信时,发现从机返回的数据CRC校验失败,导致数据解析异常。然而,在我的代码中,用于存储保持寄存器的数组。的工作模式配置,让它根据选择的校验模式自行判断应该配置成多少位。在自己的开发板上移植了野火的modbus主机程序并尝试使用。始终为0,未能更新。而串口的数据位配置的是8位,这就导致了数据接收错误。递增,排查原因是CRC校验失败,导致解析失败。中的分支添加解析结果的测试,结果显示。但是主函数中,设置的是偶校验。

2025-08-27 16:39:16 1153

ch452a资料(说明书+代码)

ch452a资料(说明书+代码)

2025-05-15

cryptool2.1安装包

cryptool2.1,可以用来做信息安全的实验。

2023-06-10

空空如也

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

TA关注的人

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