• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

数据存储

無唁苡對 2018-10-31 浏览量:803
我想把多个串口收集来的数据存放到一个ram里,如果几个串口的数据同时来,应该怎么存放能让这几个串口的数据可以顺序存进ram????
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 什么叫做一个RAM?

    只能猜测你是想把多个串口的数据按顺序存在一个数组里吧?

    定义一个全局数组

    再定义一个全局整型数(比如Index)作为收到数据的计数

    在每个串口接收中断里,以Index作为序号存在数组里,然后Index++

    只要保证各个串口优先级一样,就没什么大问题。

    • 发布于 2018-10-31
    • 举报
    • 评论 1
    • 0
    • 0
無唁苡對 回复了 Spirit:我用IP核生成了一个ram。我用的if.....elsif实现各个串口的优先级,但是数据同时来的话,我需要加延时才能将几个串口的数据存到ram里,但是必须加移位寄存器作为延时,否则数据就被后面的数据覆盖了,但是我加了几个,结果资源不够,这怎么办??? 回复

其他答案 数量:10

  • 如果有多个串口,你应该对他们分别设置不同的缓冲区啊(内存地址不同的),然后分别处理,这样才能保证对每个的接收是完整的。
    • 发布于2018-11-01
    • 举报
    • 评论 1
    • 0
    • 0
無唁苡對 回复了 xdsnet :我是分别处理的,我把这几个串口的数据分别存放在对应的ram里 回复

  • 应该不同串口来的不同数据分别存放在不同的数组里面。然后再手动放到一起
    • 发布于2018-11-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 意思是用同一个缓冲区吗,如果这些串口发生数据接收的时间可能会冲突,那最好分开保存,否则一定会冲突的
    • 发布于2018-11-08
    • 举报
    • 评论 0
    • 0
    • 0

  • 把他们合成一个结构,做一个结构数组放在RAM里。
    • 发布于2018-11-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 单片机是串行读取设备,数据不可能同时来的,肯定有先后顺序,你可以先用一组数组顺序接收所有数据,在开辟另一组新的数组调整你想要的顺序。
    • 发布于2018-11-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 那么每个串口都要有一个比较小和RAM来缓存数据才可以
    • 发布于2018-11-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 要检查一下你的串口读取数据,有可能是你的缓存不够导致的
    • 发布于2018-11-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 串口的数据都是有一个先后顺序的,只要是按顺序进行存储就可以了的
    • 发布于2018-11-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个数据是要按照地址来区别,根据地址来进行存放
    • 发布于2018-12-11
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

数据存储