OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5557|回复: 9

USART不断有数据,接受处理咋整?

[复制链接]

33

主题

209

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2014-1-20
在线时间
0 小时
发表于 2014-12-10 20:26:26 | 显示全部楼层 |阅读模式
5金钱
串口不停有数据进来,其中包含小部分有效数据包。在接收时怎么处理?
考虑用循环队列接收处理,在中断接收向队列头增加,同时主函数在队列尾部取出,这样可行吗,感觉会造成数据丢失?
DMA会不会好点?

最佳答案

查看完整内容[请看2#楼]

回复【8楼】Chaplin: --------------------------------- 循环队列足够了,关键是处理好。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11560
金钱
11560
注册时间
2014-4-1
在线时间
1318 小时
发表于 2014-12-10 20:26:27 | 显示全部楼层
回复【8楼】Chaplin:
---------------------------------
循环队列足够了,关键是处理好。
回复

使用道具 举报

33

主题

209

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2014-1-20
在线时间
0 小时
 楼主| 发表于 2014-12-10 20:30:56 | 显示全部楼层
原子哥,求指导
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-10 21:22:34 | 显示全部楼层
你数据来自何方啊?如果是不停的来数据,那就不好处理了。
如果是间歇性的,比如50ms来一次数据,就好处理。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11560
金钱
11560
注册时间
2014-4-1
在线时间
1318 小时
发表于 2014-12-10 22:07:08 | 显示全部楼层
再快,它也是串口,比CPU的处理速度慢多少个数量级。

关键是逻辑要处理好,很多人做并不好。
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-12-11 08:14:20 | 显示全部楼层
主要来的数据没有DMA快就可以试试,串口再怎么连续来数据,也没有CPU处理速度快就行了,关键还是你的逻辑要处理好,避免死机,死循环什么的就不容易丢失数据
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

1

主题

80

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2014-11-26
在线时间
0 小时
发表于 2014-12-11 09:03:44 | 显示全部楼层
标准做法就是环形缓冲,环形队列。
回复

使用道具 举报

33

主题

209

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2014-1-20
在线时间
0 小时
 楼主| 发表于 2014-12-11 09:31:29 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
是从wifi模块过来的,来数据间歇与否是根据APP操作如何,所以不好确定,来数据多的时候有几百个byte。我想循环队列可行,缓冲区稍微大点?
回复

使用道具 举报

33

主题

209

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2014-1-20
在线时间
0 小时
 楼主| 发表于 2014-12-11 09:33:27 | 显示全部楼层
回复【4楼】xuande:
---------------------------------
感觉循环队列可行,主要是队列不好控制,好纠结
回复

使用道具 举报

33

主题

209

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
金钱
361
注册时间
2014-1-20
在线时间
0 小时
 楼主| 发表于 2014-12-11 09:35:14 | 显示全部楼层
回复【5楼】八度空间:
---------------------------------
先试试吧,主要是避免中断里面队列头跟尾碰到一起了。。。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-28 01:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表