打印
[测量]

问个串口DMA接受不定长度数据的问题

[复制链接]
1757|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mgfzhh|  楼主 | 2016-10-14 23:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谁知道 DMA模式,接收的一帧数据 不定长时,怎么处理这个长度问题?
举个例子,第一帧数据 是8 byte,这时候dma长度是8,第二帧变成了13 byte,并且第二帧这个长度13 也只能在接收后才能计算出来,在重新给dma长度赋值,可是第二帧数据dma只能接收8 byete 就进中断了,也就是 数据无效了,第三帧还是13的话,才有效。。。这个问题 该怎么处理

相关帖子

沙发
玄德| | 2016-10-15 11:57 | 只看该作者

长度事先到底知道不?如果知道就改DMA中断长度。

串口这么慢的东西,最多用到接收中断就行了,DMA不够麻烦的。

使用特权

评论回复
板凳
ningling_21| | 2016-10-17 12:14 | 只看该作者
大材小用了

使用特权

评论回复
地板
wc105| | 2016-10-17 12:21 | 只看该作者
这个特别好我喜欢!!!!!!!!!

使用特权

评论回复
5
mgfzhh|  楼主 | 2016-11-2 23:15 | 只看该作者

485 通信  数据量很大的好不,何况 还是 双路485 同时通信,不用DMA,cpu就一直卡在中断里,别的什么事情都干不了

使用特权

评论回复
6
mgfzhh|  楼主 | 2016-11-2 23:16 | 只看该作者
玄德 发表于 2016-10-15 11:57
长度事先到底知道不?如果知道就改DMA中断长度。

串口这么慢的东西,最多用到接收中断就行了,DMA不够麻 ...

改变前 是不知道的,

使用特权

评论回复
7
lai832| | 2017-6-7 10:27 | 只看该作者
看一下有没有半中断   接收一半时产生中断,自己再想办法

使用特权

评论回复
8
ningling_21| | 2017-6-11 17:59 | 只看该作者
mgfzhh 发表于 2016-11-2 23:16
改变前 是不知道的,

DMA只能处理固定长度的数据

使用特权

评论回复
9
mgfzhh|  楼主 | 2017-6-29 15:07 | 只看该作者
ningling_21 发表于 2017-6-11 17:59
DMA只能处理固定长度的数据

后来折中了下,只要检测到长度 改变,就重新吧这个长度 初始化进dma,,造成的影响就是 每次长度变化后第一帧异常,后面的就好了,,

使用特权

评论回复
10
ningling_21| | 2017-6-29 15:32 | 只看该作者
mgfzhh 发表于 2017-6-29 15:07
后来折中了下,只要检测到长度 改变,就重新吧这个长度 初始化进dma,,造成的影响就是 每次长度变化后第 ...

使用特权

评论回复
11
lsc501| | 2017-7-21 14:06 | 只看该作者
接收数据可以用超时啊,接到最后一个数据后在一个字节的时间内没收到下一个起始位就认为接收一帧完成

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

166

帖子

5

粉丝