[测量] 问个串口DMA接受不定长度数据的问题

[复制链接]
 楼主| 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 | 显示全部楼层
这个特别好我喜欢!!!!!!!!!
 楼主| mgfzhh 发表于 2016-11-2 23:15 | 显示全部楼层

485 通信  数据量很大的好不,何况 还是 双路485 同时通信,不用DMA,cpu就一直卡在中断里,别的什么事情都干不了
 楼主| mgfzhh 发表于 2016-11-2 23:16 | 显示全部楼层
玄德 发表于 2016-10-15 11:57
长度事先到底知道不?如果知道就改DMA中断长度。

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

改变前 是不知道的,
lai832 发表于 2017-6-7 10:27 | 显示全部楼层
看一下有没有半中断   接收一半时产生中断,自己再想办法
ningling_21 发表于 2017-6-11 17:59 | 显示全部楼层
mgfzhh 发表于 2016-11-2 23:16
改变前 是不知道的,

DMA只能处理固定长度的数据
 楼主| mgfzhh 发表于 2017-6-29 15:07 | 显示全部楼层
ningling_21 发表于 2017-6-11 17:59
DMA只能处理固定长度的数据

后来折中了下,只要检测到长度 改变,就重新吧这个长度 初始化进dma,,造成的影响就是 每次长度变化后第一帧异常,后面的就好了,,
ningling_21 发表于 2017-6-29 15:32 | 显示全部楼层
mgfzhh 发表于 2017-6-29 15:07
后来折中了下,只要检测到长度 改变,就重新吧这个长度 初始化进dma,,造成的影响就是 每次长度变化后第 ...

lsc501 发表于 2017-7-21 14:06 | 显示全部楼层
接收数据可以用超时啊,接到最后一个数据后在一个字节的时间内没收到下一个起始位就认为接收一帧完成
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

166

帖子

5

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

12

主题

166

帖子

5

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