社区
单片机/工控
帖子详情
[震惊]STM32 Flash数据丢失问题
jzen
2020-10-11 11:54:22
设备原理图:
电源: 高能立方 ACDC电源 12V@12W
主控: STM32F103
外围:继电器/485
继电器控制交流接触器,交流接触器控制市电的几十A电流,测试发现,随机性发生Flash内数据丢失的问题(Flash内部划分两个扇区做数据保存,例如ID, 设备运行一段时间后,ID直接丢失,变成FFFF),不知道是什么问题。
...全文
53684
6
打赏
收藏
[震惊]STM32 Flash数据丢失问题
设备原理图: 电源: 高能立方 ACDC电源 12V@12W 主控: STM32F103 外围:继电器/485 继电器控制交流接触器,交流接触器控制市电的几十A电流,测试发现,随机性发生Flash内数据丢失的问题(Flash内部划分两个扇区做数据保存,例如ID, 设备运行一段时间后,ID直接丢失,变成FFFF),不知道是什么问题。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
帮帮你我她
2020-11-14
打赏
举报
回复
运行时尽量减少读写FLASH的存储参数,进入读写区时做个标志,其他进程绕过不执行
jzen
2020-11-10
打赏
举报
回复
我的电源是AC-DC隔离的,不过没有带地线。继电器控制没有做光耦隔离。TVS也有加,但是没有做屏蔽罩。
qq_42038144
2020-11-03
打赏
举报
回复
继电器加隔离防护措施,电源隔离,光耦或者数字隔离器件,电源端口加TVS。
qq_42038144
2020-10-13
打赏
举报
回复
加好隔离及吸收噪声处理。
general001
2020-10-12
打赏
举报
回复
改用固态继电器,无打火,无干扰
老皮芽子
2020-10-12
打赏
举报
回复
单纯的硬件中,高压电场,放电,打火,变化的强磁场。都会影响 FLASH 的数据丢失。 电子设备如果运行在强电磁场中就需要考虑电磁场的屏蔽。 在你的设计中可能继电器的触点打火会造成FLASH 丢失。 将电路板做好电磁屏蔽处理是解决这个问题的比较好的办法。
STM32
H7 QSPI实战指南:从内存映射到DMA加速
本文深入解析
STM32
H7的QSPI外设,重点涵盖内存映射模式配置(需256字节对齐、DummyCycles适配、模式切换时序)、MDMA/DMA加速实现(FIFO阈值设置、中断与内存屏障)、信号完整性优化(PCB布局、端接电阻)、XIP模式下ICache与预取机制调优,以及分层驱动架构设计。实测显示内存映射读取达32MB/s,DMA使CPU占用率降至5%。
W25Q16
Flash
存储器在嵌入式系统中的高效应用
本文深入解析W25Q16
Flash
存储器在嵌入式系统中的关键技术要点,涵盖其SPI硬件连接规范、扇区/块/页三级存储结构、页编程与扇区擦除操作机制、分区管理策略及抗干扰布线实践。重点阐述配置参数存储、字库存储、日志记录等典型应用场景,并介绍OTA固件升级、MCU外扩程序空间、CRC/ECC
数据
保护等高级用法,同时提供坏块管理、写前擦除验证、非阻塞擦除等工程化解决方案。
嵌入式设备OTA升级实战:从单片机到Linux系统的设计差异
本文深入剖析嵌入式设备OTA升级的核心原理与工程实践,涵盖单片机双备份机制、Linux组件化升级架构、根文件系统原子切换、ED25519加密签名、防回滚策略、bsdiff差分升级及状态机设计等关键技术;强调安全性、可靠性与跨平台思维转换,重点讨论断电保护、完整性校验、故障注入测试及性能监控指标。
libcurl下载大文件
源码链接: https://pan.quark.cn/s/8ddf8a1c92f9 **libcurl用于获取大型文件**libcurl作为一个开源的C语言库,提供了一系列的API来处理与URL相关的任务,涵盖了HTTP、FTP、SMTP等多种网络协议的应用。在执行大型文件的下载操作时,libcurl展现出卓越的性能表现和高度的灵活性,能够高效地管理大文件传输过程,有效预防内存溢出及其他潜在
问题
。**libcurl的基础操作**libcurl的基础应用包括以下几个环节:1. **初始化**:需要借助`curl_global_init()`函数来启动libcurl的工作环境。2. **建立会话句柄**:通过`curl_easy_init()`函数创建一个会话句柄,该句柄将用于后续所有的操作流程。3. **配置选项**:运用`curl_easy_setopt()`函数来设定多种参数,例如目标URL、超时时间、重试次数以及
数据
写入的回调函数等。4. **执行请求**:调用`curl_easy_perform()`函数来实施下载操作。5. **释放资源**:使用`curl_easy_cleanup()`函数来释放已经占用的资源。**获取大型文件时的重要设置**1. **
数据
写入回调函数**:在处理大型文件下载时,通常不希望一次性将整个文件载入内存。可以配置`CURLOPT_WRITEFUNCTION`选项,指定一个回调函数来处理接收到的
数据
片段,这样libcurl在接收到
数据
时会调用该函数,使得我们可以按需将
数据
写入文件或缓冲区。2. **缓冲策略**:可以设定缓冲区的大小(比如,通过`CURLOPT_BUFFERSIZE`),来控制每次接收
数据
的数量,从而优化内存...
200ZJ-65 渣浆泵.rar
200ZJ-65 渣浆泵.rar
单片机/工控
27,521
社区成员
28,799
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章