[震惊]STM32 Flash数据丢失问题

jzen 2020-10-11 11:54:22
设备原理图:
电源: 高能立方 ACDC电源 12V@12W
主控: STM32F103
外围:继电器/485

继电器控制交流接触器,交流接触器控制市电的几十A电流,测试发现,随机性发生Flash内数据丢失的问题(Flash内部划分两个扇区做数据保存,例如ID, 设备运行一段时间后,ID直接丢失,变成FFFF),不知道是什么问题。



...全文
53684 6 打赏 收藏 转发到动态 举报
写回复
用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 丢失。 将电路板做好电磁屏蔽处理是解决这个问题的比较好的办法。
源码链接: 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`),来控制每次接收数据的数量,从而优化内存...

27,521

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧