STM32数据存储问题。想用STM32处理激光雷达数据,每秒钟串口上来4000个数据,怎么将这些数据存储,并每4000个数据更新一次

2019-07-20 22:47发布

现在实验室正在做使用激光雷达避障,希望大神多指点。激光雷达通过串口和STM32通信,每秒钟传送4000次数据,每次数据包含距离和角度数值,我怎么将这4000个数据进行存储,并且实时更新,可以覆盖上一个4000,一个周期存储完成后还能够实时读取,以此获取障碍物2D尺寸轮廓,用EEPROM?EEPROM的内存只有2kb,是不是不够用啊?用FLASH?用SD卡吗?求大神指点
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
oyixi001
1楼-- · 2019-07-20 23:50
本帖最后由 oyixi001 于 2017-5-1 09:10 编辑

就存片内RAM不行么?不清楚你的4000个数据包含多少个8位。我的理解是就算你说的距离和角度数值是32位数据,那就是4*2*4000这也才32k数据诶,如果没有其他的大数据包,片内应该是够得,选64K以上RAM的片子就成。
然后至于速度,串口波特率高一点,用串口出发DMA请求,定义好存储的数组,然后用DMA往里送就完了。可以参考使用DMA进ADC循环采样的程序。
我没弄过哈你要求的东西,只是觉得我说的是个思路~嘿嘿。。。对了,定义这么大的数组要全局变量,不然你就会发现一直在 error中断。。。
小米1粒
2楼-- · 2019-07-21 03:41
yklstudent 发表于 2017-5-1 08:17
感觉楼主更应该考虑的是速度是否能满足

您好,非常感谢您的解答!您说的速度是什么意思?怎么衡量合适?STM32的SRAM是多少呢?雷达串口上来的数据是4000HZ,串口的波特率配置的是115200,您觉得可以实现吗
小米1粒
3楼-- · 2019-07-21 08:35
oyixi001 发表于 2017-4-30 18:41
就存片内RAM不行么?不清楚你的4000个数据包含多少个8位。我的理解是就算你说的距离和角度数值是32位数据, ...

您好,非常感谢您详细的解答!!!您这么一说,我也感觉可以实现了,现在我在缕清一下思路,希望您看看对不对。选用STM32F429,RAM256,我定义两个全局变量float  distance【4000】;float angle【4000】;串口波特率设置成115200,用DMA发送(之前我用DMA 处理过10Hz的GPS数据,串口通信) 、保存;如果我想使用这些数据,设置一个定时中断,随时对这4000个角度和距离进行判断,决定小车如何转向,如何避障,您看看时候有错误的地方.
lin2017
4楼-- · 2019-07-21 13:27
 精彩回答 2  元偷偷看……
liaoliaoliao
5楼-- · 2019-07-21 17:06
请问  后来解决了没

一周热门 更多>