[STM32F1] CAN通讯数据保存

[复制链接]
1073|12
 楼主| gshhkkk 发表于 2022-7-25 19:33 | 显示全部楼层 |阅读模式
请问一下,CAN通讯后的数据该如何保存呢?我知道是保存到外部flash或者内部flash中,但是有一个问题就是,在写flash的时候会有擦除的过程,擦除的时间大约是40ms的时间,可是CAN通讯的频率是1MHz,读取到的数据,根本就没有时间进行保存,会有很多的丢失情况,该怎么办呢?
skyred 发表于 2022-8-25 20:45 | 显示全部楼层
这是两个阶段,一是数据收发,二是数据存储
dalarang 发表于 2022-8-25 21:08 | 显示全部楼层
做个FIFO缓存,收到CAN数据帧后先放到缓存中,然后用单独的线程读取缓存写入到FLASH
未说出口的像你 发表于 2022-8-25 23:52 | 显示全部楼层
你可以把数据放在buffer中,然后定时写入

我吃小朋友 发表于 2022-8-27 00:02 | 显示全部楼层
这个就考验你逻辑的处理能力了,缓冲到buffer中呗,然后再导入到flash

温室雏菊 发表于 2022-8-27 00:31 | 显示全部楼层
存在flash中有没有DMA这种操作啊

风凉 发表于 2022-8-27 00:54 | 显示全部楼层
你测试过,是会丢失数据的是么?

西洲 发表于 2022-8-27 01:17 | 显示全部楼层
正常来说,你交互不也是需要时间的么

月亮一键变蓝 发表于 2022-8-27 01:39 | 显示全部楼层
是不是用操作系统的话,能好点啊

失物招領 发表于 2022-8-27 02:02 | 显示全部楼层
应该能存吧,你可以先把数据放在buffer

将爱藏于深海 发表于 2022-8-27 02:25 | 显示全部楼层
没这么测试过,但是我觉得你交互的时候,不都是有用数据留下么,心跳啥的也会要存起来么

春日负喧 发表于 2022-8-27 02:49 | 显示全部楼层
你可以找STFAE问问,看看怎么处理比较好

故意相遇 发表于 2022-8-27 06:05 | 显示全部楼层
这种时间属实挺紧的啊,比较麻烦

您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

43

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部