- 博客(46)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 STM32片内存储参数规划设计应用实例
STM32的存储结构主要包括以下几部分:• 代码区(Flash):用于存储程序代码和常量数据。• 数据区(SRAM):用于存储运行时变量和堆栈数据。• 备份寄存器区:用于存储低功耗模式下的关键参数。在本实例中,我们将重点关注Flash存储区的使用,特别是如何划分参数存储区和程序下载区。本文通过一个实际应用实例,介绍了如何在STM32中设计片内存储参数,并通过结构体方式存储参数。通过STM32Cube配置工程,我们成功划分了参数存储区和程序下载区,并实现了参数的读写操作。
2025-02-26 11:34:49
733
5
原创 杂记:Profibus 测试记录推广
在项目中接触到Profibus总线的开发,由于这套协议相对比较封闭,编程资料比较少,规范文件非常枯燥乏味,晦涩难懂。所以出一个专栏总结一下。
2025-02-26 10:02:39
792
原创 STM32外设SPI FLASH应用实例
在嵌入式系统中,数据的存储和备份是一个非常重要的功能。SPI FLASH 是一种常见的非易失性存储器,具有容量大、速度快、接口简单等优点。本文将介绍如何在 STM32F103 上使用 SPI 接口操作 QW128 SPI FLASH,并通过乒乓存储的方式实现数据备份。本文介绍了如何在 STM32F103 上使用 SPI 接口操作 QW128 SPI FLASH,并通过乒乓存储的方式实现数据备份。通过这种方式,可以有效地提高数据的可靠性和系统的稳定性。希望本文对大家有所帮助,欢迎在评论区留言讨论。
2025-02-17 10:59:07
1779
2
原创 STM32旋转编码器应用实例
旋转编码器是一种常用的机械式传感器,广泛应用于需要精确测量角度或位置的场景,如电机控制、人机界面等。STM32单片机提供了多种方式来驱动和读取旋转编码器的信号,本文将详细介绍旋转编码器的工作原理、STM32定时器编码器模式的原理、应用实例以及总结。旋转编码器是一种将机械旋转转换为电信号的传感器,通常用于测量旋转角度或速度。根据输出信号的形式,旋转编码器分为绝对式编码器和增量式编码器。在嵌入式系统中,增量式编码器更为常见,因为它输出的是脉冲信号,适合实时测量。
2025-02-15 14:25:24
1152
4
原创 AI:嵌入式码农晋升之路其三:freemobus从机移植
本文长度有点长,宗旨是对比现在比较热门的AI应用对嵌入式开发的辅助作用,尚且处于摸索之中。从下文的对比中来看,各个应用各有优劣,豆包和DeepSeek对freemodbus的应用似乎推理更深一筹,能够直接给出数据更新的回调函数,但是豆包忽略了参数需要映射到结构体中去。同时三个应用都没有直接给出移植的具体方案,把重点都放在了应用上。所以,笔者再次提出了优化方向,优化移植细节。
2025-02-15 14:25:00
857
原创 AI:嵌入式码农晋升之路其二
生成的代码在一定程度上能够满足我们提出的需求,可以根据自己的想法进一步提出优化方向,直到更符合我们实际需求。也可以在这个基础上根据我们的编码习惯进行更改。
2025-02-14 10:14:53
259
原创 杂记:守护进程or守护进程脚本
的作用就是让标准输出重定向到/dev/null中(丢弃标准输出),然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了。执行了这条命令之后,该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出到文件中。这条命令的作用是错误输出将和标准输出同用一个文件描述符,说人话就是错误输出将会和标准输出输出到同一个地方。为了防止进程异常挂掉,为了避免影响业务,编写一个守护进程,定时检查某个进程是否存在,如果不存在则自动启动该进程。
2025-02-14 10:14:12
413
原创 杂记:使用KIMI优化博客质量记录
这段时间Deepseek比较火,突发奇想通过AI工具来优化博客质量,提高可读性,让读者更容易理解。这也是提高我们博客记录质量的一种尝试。通过KIMI的优化增加了一些原理性的介绍,让初次接触的同学能够更了解本文代码的主题思想。优化前的文章和优化后的文章同时发布出来,并且本文做了对比分析,对比优化前后的效果。为以后博客撰写质量的提高提供了一种思路。后面还需要更多摸索。
2025-02-13 14:28:25
385
5
原创 杂记:AI优化博客——LED呼吸流水灯发波控制
应用场景LED呼吸灯和流水灯效果广泛应用于智能家居、智能设备、汽车仪表盘等领域,用于提升用户体验和设备的美观性。例如,智能家居设备可以通过呼吸灯效果显示设备状态,汽车仪表盘可以通过流水灯效果显示车辆信息。技术背景LED灯控制的基本原理是通过调整LED的亮度来实现不同的视觉效果。呼吸灯效果通过模拟正弦波来实现亮度的渐变,而流水灯效果则通过控制多个LED灯的亮灭顺序来实现动态效果。这段时间Deepseek比较火,突发奇想通过AI工具来优化博客质量,提高可读性,让读者更容易理解。
2025-02-13 14:27:29
775
原创 杂记:QT发布
点击增加中的增加文件夹【递归】 ,并选择之前新建的文件夹,也就是存放exe文件的文件夹。添加C:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin环境变量。找到文件夹中的这个exe文件(自己修改的名称),就可以复制到桌面或发给他人直接是用了。找到安装文件夹,输入如下命令拷贝所使用的库。软件打包(必须要在执行完上述过程后使用)更改输出文件名称,点击封包,等待结束。修改语言为中文,需要重启软件显示。选择默认无需更改,点击确定。必须使用搜索框打开CMD。点击文件选项,压缩文件。
2025-02-12 09:32:31
1196
原创 AI:嵌入式码农晋升之路其一
AI 辅助嵌入式 C 语言代码编写已经成为一种趋势,它为开发者带来了诸多优势,如提高开发效率、提升代码质量等。然而,目前也面临着一些挑战和局限性。随着 AI 技术的不断发展和完善,相信它将在嵌入式开发领域发挥更加重要的作用,推动嵌入式系统的发展和创新。开发者应该积极拥抱 AI 技术,合理利用 AI 辅助工具,提高自己的开发能力和效率。
2025-02-11 09:25:27
348
原创 杂记:移植FreeRtos启动卡住
后,main函数不会往下执行了,开始执行main函数中定义的Task。正常会启动一个空闲任务,然后启动第一个Task,执行到svc 0,调用 svc 并传入系统调用号为 0 手动拉 SVC 中断。在main函数中调用。
2025-02-10 09:17:11
279
原创 杂记:STM32下载后不运行
另外,栈溢出不一定会死机,比如栈只生长到堆区,或者稍微进入变量区,而且溢出整个过程不对这些区域做写入操作,不对这些区域做取指操作,就可以完美避免hardfault,但溢出还是溢出了,数据还是被修改了.最"直接"的表现是函数调用后,还没看到执行用户代码就发现某些不相干的数据被修改,不过这也足够隐蔽了. 而且,hardfault也不一定是栈溢出的直接结果,只是入栈后数据被修改,出栈时跳转错误(最容易出现),导致指令访问错误,或者数据访问错误。我曾尝试单纯的修改栈或者单纯的修改堆的大小但是程序还都是不运行。
2025-02-10 09:16:41
539
原创 杂记:下载了BootLoader和APP到程序中无反应
是因为采用了printf输出打印。占用了大量堆栈导致程序运行异常。并且没有打开Use MicroLIB库的话会导致无法启动程序。2、如果不关闭printf打印,则加大Heap_Size 到0x2000。且使能Use MicroLIB库。1、关闭printf打印。
2025-02-09 20:44:31
203
原创 STM32Cube库和HAL库编写SPI通信程序
请注意,此示例仅适用于使用SPI1作为主设备的情况。如果要使用其他SPI外设或作为从设备,需要相应更改代码。函数中初始化SPI的配置,包括模式、数据大小、时钟极性和相位等。进行同时发送和接收数据。在主函数中,将要发送的数据存储在。数组中,并将接收的数据存储在。
2025-02-08 10:11:28
318
原创 LED呼吸流水灯发波控制
算法QT模拟,输出正弦波曲线。曲线有基准占空比,设置曲线条数,偏移相位,周期。20ms计算一次曲线当前值,在一定刷新周期(0.1ms)和输出值判断当前是否电量LED灯。根据占空比实时控制LED灯的亮度。
2025-02-07 10:09:07
253
原创 STM32 CUBE Can调试
需要注意的是STM32CUBE配置的代码需要再手动添加过滤器,并且将FIFO关联。启动函数记得添加在while循环之前。
2025-02-07 10:08:42
698
原创 第八章:Profibus 协议纯软方案测试记录
本案例采用的时循环接收,中断发送的方式进行数据交互。不支持波特率自适应。后期优化方向,可以考虑通过DMA接收和DMA发送等方式进行数据交换,前提是确保断帧正确和数据处理及时。考虑使用时钟频率更高的MCU,或许能够实现更高的通信波特率。目前通过测试软件测试最大波特率能够达到93.75K,长时间测试误码率万分之0.4左右。9600、19200、45.45K均能够实现长时间通信。本案例能够实现中断重连,通信中断后发送状态帧,通知主机重新建立连接。
2025-02-06 14:14:56
862
3
原创 STM32F103 STM32CUBE HAL库 串口DMA发送无法执行回调
弱函数重定义/***/ }重定义回调函数...STM32CUBE给开发提供了很多便利,但是HAL库还是有不少坑在里面,需要我们理解库函数的机制,遇到BUG后去调试优化。
2025-02-06 14:14:01
469
原创 第十一章:CSIP调试记录和调试方法
调试说明调试DER程序是使用官方指定测试机构开发的测试程序,测试程序只有插上官方授权测试第三方的测试狗(U盘秘钥)才能够正常启动,而且插上必须使用管理员权限启动,否则会报错通信异常。测试之前必须电机Configuration配置端口号和Ipv4或者ipv6。一般使用测试软件安装电脑的ip。
2024-12-16 10:57:36
179
原创 第十章:CSIP:DER_CLIENT各个帧处理方式
本文介绍了智能电网中的关键标准,包括IEEE 2030.5、Common Smart Inverter Profile (CSIP)和Rule21。2030.5标准用于智能逆变器与电网的互联互通,CSIP是其一部分,而Rule21是加州的并网法规,要求逆变器具备特定功能和通信协议。文章还提及了SUNSPEC联盟的角色,提供认证和测试标准,助力分布式能源设备的互操作性。本文介绍的时协议相关处理方式
2024-12-16 10:46:32
168
原创 第九章:CSIP应用程序开发方案参考
数据帧解析和打包调用libxml2库函数编写,所有接收和发送帧都需要实现打包和解析,有助于存储的控制打印分析。6、获取控制时,从fsa开始判断优先级,一层一层判断只取优先级最高的控制,获取不到就取优先级次高的,直到本轮轮询获取到控制为止。控制接收、开始、结束需要更新控制的状态,等待调度,激活,替代。derp_List;4、DERControl的优先级由其包含的DERProgram的优先级设置决定,该DERProgram具有指示高优先级的低优先级值。4、轮询List(数组),取当前最新的开始时间的控制执行。
2024-12-15 15:54:57
83
原创 第八章:CSIP参考程序分析解读
SunSpec协议主要用于光伏储能系统的监测和控制。例如,在光伏储能系统中,SunSpec协议可以用于监测逆流,确保能量的合理利用和逆流保护。具体应用包括:高精度电能计:能够准确记录光伏系统的发电量和用电量,确保数据的可靠性。实时监测:支持双向计量光伏储能系统中的电能参数。数据记录与分析:保存电能数据,并通过数据分析帮助用户优化能量使用。通讯方式:支持SunSpec通讯协议,可上传平台实现远程监控和数据传输,方便用户进行集中管理。
2024-12-15 15:53:46
81
原创 第七章:Profibus 真实项目协议对接
本着授人以鱼不如授人以渔的原则,本专栏没有给出完整的代码,但是总体描述了总体思路和需要注意的点。实在需要的朋友可以通过xianyu搜索本人用户昵称同号的xianyu账号,查找文章名称同名的链接。专栏到此基本结束。后续如果有时间的话,会新开一个调试方法、调试过程的博文专栏。如有更新,请留意,谢谢!
2024-12-10 17:06:50
863
原创 第六章:Profibus STM32 + SPC3方案软件设计
基于协议解析芯片实现的软件架构一般都是采取前后台(主程序模块/中断处理模块)的软件架构,且一般不建议使用操作系统。因为在通信总线上数据收发频率非常快,且波特率可达12Mpbs。采用操作系统可能会处理通信收发数据不够及时,出现丢帧漏帧的情况。
2024-12-09 20:24:36
288
原创 第五章:Profibus STM32 + SPC3方案硬件设计
SPC3SPC3芯片是一种用于PROFIBUS-DP开放式工业现场总线的智能化接口芯片,广泛用于工业自动化和楼宇管理自动化中的单片机接口。SPC3集成了完整的DP协议,包括方式寄存器、状态寄存器、中断寄存器、各种缓冲器指针和缓冲区等,有效地减轻了处理器的压力,支持12Mbps的数据传输速率。内部结构和工作原理SPC3内部集成了1.5KB的双口RAM,带有11位地址线的并行8位接口,用户可以立即寻址。
2024-12-09 14:17:56
308
原创 第四章:Profibus 单片机 软件模拟DP从机 ------ 以STM32为例
在项目中接触到Profibus总线的开发,由于这套协议相对比较封闭,编程资料比较少,规范文件非常枯燥乏味,晦涩难懂。所以出一个专栏总结一下。
2024-12-08 15:33:49
486
1
原创 第七章:CSIP通信协议总结
本文介绍了智能电网中的关键标准,包括IEEE 2030.5、Common Smart Inverter Profile (CSIP)和Rule21。2030.5标准用于智能逆变器与电网的互联互通,CSIP是其一部分,而Rule21是加州的并网法规,要求逆变器具备特定功能和通信协议。文章还提及了SUNSPEC联盟的角色,提供认证和测试标准,助力分布式能源设备的互操作性。
2024-12-08 15:33:11
181
原创 第六章:CSIP:Common Smart Inverter Profile整理
对于聚合器通信,通知和回叫(订阅/通知)应使用用来最大限度地限制系统轮询。为了简化直接DER通信场景的通信要求,除非在电力互联手册或程序/合同中另有规定,所有通信应由DER客户端发起(即,客户端发起)。这种通信模型不需要复杂的各方根据CSIP的需要对网络安全性进行更改。在直接DER通信场景中,客户端系统应根据预先定义的轮询和投递间隔启动与公用事业的通信,以确保DER有最新的设置,且公用事业了解DER的运行状态。
2024-12-07 10:42:31
77
原创 第三章:Profbus GSD文件详解
PROFlBUS设备具有不同的性能特点,为达到PROFIBUS简单的即插即用配置。PROFIBUS设备的特性均在电子设备数据库文件(GSD)中具体说明。标准化的GSD数据将通信扩大到操作员控制级。使用基于GSD的组态工具可将不同厂商生产的设备集成在同一总线系统中.既简单又是对用户友好的。
2024-12-07 09:43:58
301
原创 第二章:Profibus Dp诊断、参数、组态数据的定义
在Profibus Dp主站和Dp从站通信建立过程,DP主站首先检查从站的诊断信息,检查从站是否被参数化,参数是否正确,若没有,先进行参数化和组态配置。若参数化和组态成功后,进入数据交换。下面介绍诊断信息、参数化数据和组态数据的含义。
2024-12-07 09:43:09
633
原创 第一章:Profibus DP通信简介
PROFIBUS (Process Fieldbus)的缩写,是一种国际化的、开放的、不依赖于设备生产商的现场总线标准。它广泛应用于制造业自动化、流程工业自动化和楼宇、交通、电力等其他工业自动化领域。串行现场总线主要用来连接数字现场设备或中、低功能的系统,如传感器、执行机构、变送器、可编程序控制器(PLC)、数控装置(NC)、编程设备、本地人机接口等。
2024-12-06 19:45:22
1509
1
原创 第五章:SunSpecCSIPConformanceTestProceduresV1.2
测试指导注意版本更新!!!本文所总结的测试用例就是DER设备的所有测试用例。主要分为基本通信测试、核心功能测试和基本功能测试。基本通信主要是关于HTTP、HTTPS的通信逻辑。核心功能测试主要是关于在通信建立后,各级资源的获取和解析处理。基本功能测试就是关于控制曲线获取、控制曲线调度、告警上传、状态上传、输出数据上传。即,接收遥控命令,上传遥信数据。
2024-12-06 19:44:19
153
原创 单片机移植freemodbus主机(STM32、GD32、瑞萨、国民技术等)
STM32单片机移植freemodbus主机。生成的项目文件将任务初始化都生成再freertos.c文件中,配置时STM32Cube工程时,配置了一个MasterTask的任务,一个StartReadTask、一个StartWriteTask。否则返回的是MB_MRE_EXE_FUN。**注意:**实际使用中可以将任务代码放在单独的文件中。解决办法:在eMBMasterPoll() 的EV_MASTER_READY状态下先释放信号量。FreeModbus的移植主要包含:物理层接口的修改、应用层回调的修改。
2023-05-08 10:02:27
5377
7
原创 单片机移植freemodbus从机(STM32、GD32、瑞萨、国民技术等)
STM32单片机移植freemodbus从机freemodbus从机运行机制freemodbus从机使用方法STM32工程STM32Cube工程创建
2023-05-04 10:16:39
2511
原创 Bootloader开发
1)bin文本传输采用Ymodem协议,移植协议代码。2)触发进入BootLoader下载可以通过接收协议帧触发。另外用宏配置一个按键或者跳线帽进行下载模式的硬件触发模式。3)芯片分配Bootloader区、APP区、参数区(存储APP的名称、版本、大小、当前下载的地址),如果芯片大小充足的话,再分配一个APP2,备份下载区,采用备份搬运升级的方式。4)如果采用乒乓升级的话,APP代码工程需要设定不同的IROM1区域,所以不采用该方式。5)与上位机兼容。方式一:上位机按协议进行开发;
2023-03-30 15:46:56
1168
1
原创 [i.MX] imx6q利用Mfgtools工具烧录失败,显示No Device Connected!烧录到一半显示“Push“ error, file=“***““
MfgTool工具烧录过程遇到的问题记录
2023-03-09 10:06:06
4203
7
电池管理系统中的物理最优控制与建模:功率估算和老化机制研究
2025-03-01
电池管理系统中的电压基功率极限估计:理论与方法解析
2025-03-01
电池管理系统中的电池单元平衡技术解析与应用场景分析
2025-03-01
电池健康状态评估中的容量与阻抗参数估计方法及仿真验证(ECE5720课程笔记)
2025-03-01
电池状态估计中的卡尔曼滤波器应用及其优化
2025-03-01
电池管理系统中模拟电池组的建模方法与电动汽车仿真
2025-03-01
电动汽车电池管理系统(BMS)的功能与要求:电压、电流、温度监测及保护机制详解
2025-03-01
新能源汽车电池管理系统的架构设计及其应用方案 - 动力锂电池安全性控制
2025-03-01
电池管理系统(BMS)调试指南与应用建议-V1.0
2025-03-01
CANoe软件是由德国Vector公司开发的一款用于汽车电子控制单元(ECU)网络和单个ECU通信开发和测试的分析工具 它被广泛用于汽车行业中,特别是在ECU网络和通信的仿真、测试和诊断方面
2025-03-01
winDPMaster 是一款模拟 Profibus DP 主站功能的专业软件,支持 DPV0 协议中IO周期性数据 读写,方便现场测试和生产测试等
2024-12-08
VVV CSIPImplementationGuide-V2.1-03-15-2018
2024-06-01
VVV SunSpec-CSIP-Conformance-Test-Procedures-Results-Reporting
2024-06-01
STM32移植freemodbus主机、freertos操作系统
2023-05-08
STM32单片机移植freemodbus从机
2023-05-04
STM32单片机bootloader开发-STM32103ZET6-BOOTLOADER
2023-05-02
STM32CubeMX RTC配置STM32 RTC时钟掉电日期不更新
2022-05-19
Mysql数据库表格丢失或者不存在无法操作也无法更新
2024-06-01
如何限定唯一的加密套件ECDHE-ECDSA-AES128-CCM8?
2021-05-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人