9261|14

95

帖子

2

TA的资源

一粒金砂(中级)

楼主
 

关于串口接收不定长度的数据 [复制链接]

 
串口接收数据的时候都是把数据从缓冲器里面装到数组里面,但是我们接收的数据长度不一定,如果设置一个长度,但是实际发送的数据长度比接收的数据长度大,这该怎么处理呢?
此帖出自stm32/stm8论坛

最新回复

做个在缓存,用指针,  详情 回复 发表于 2016-10-12 23:54
点赞 关注
 

回复
举报

1944

帖子

32

TA的资源

纯净的硅(高级)

沙发
 
最简单的办法设置有一个最大的缓冲区,将接收到的数据放在里面。前提条件是内存资源足够使用。还有一种办法是定义双缓冲区,一个缓冲区装满了(或者接收完毕),立刻处理,同时切换到另外一个缓冲区进行接收。接收完毕后处理数据。
此帖出自stm32/stm8论坛

点评

第一种方法不行,这样就限制了发送数据的个数,我的目的是在接受中不能太浪费内存资源,又可以做到发送数据的时候没有长度限制  详情 回复 发表于 2016-10-12 13:10
 
 

回复

95

帖子

2

TA的资源

一粒金砂(中级)

板凳
 
azhiking 发表于 2016-10-12 13:03
最简单的办法设置有一个最大的缓冲区,将接收到的数据放在里面。前提条件是内存资源足够使用。还有一种办法 ...

第一种方法不行,这样就限制了发送数据的个数,我的目的是在接受中不能太浪费内存资源,又可以做到发送数据的时候没有长度限制
此帖出自stm32/stm8论坛
 
 

回复

84

帖子

0

TA的资源

一粒金砂(中级)

4
 
用循环缓冲区
此帖出自stm32/stm8论坛
 
 
 

回复

750

帖子

3

TA的资源

版主

5
 
链接已隐藏,如需查看请登录或者注册


参考里面关于fifo的处理,主要是pop和push两种操作
此帖出自stm32/stm8论坛

点评

这个就是对循环缓冲区的操作?  详情 回复 发表于 2016-10-12 13:32
 
个人签名

要666

 
 

回复

732

帖子

2

TA的资源

纯净的硅(中级)

6
 
使用数据结构队列(FIFO)作为缓冲区保存数据,数据最好要有帧格式界定。
此帖出自stm32/stm8论坛

点评

我在做这样一个模块,这个模块的一个串口接串口设备,另一个串口接wifi模块发送数据,现在是想把这个模块做成一个完整的东西,串口设备这边发送的数据长度都是未知的,(当然格式可以自己定义),无论发送什么数据长  详情 回复 发表于 2016-10-12 13:28
 
个人签名亚里士缺德
 
 

回复

95

帖子

2

TA的资源

一粒金砂(中级)

7
 
汤权 发表于 2016-10-12 13:16
使用数据结构队列(FIFO)作为缓冲区保存数据,数据最好要有帧格式界定。

我在做这样一个模块,这个模块的一个串口接串口设备,另一个串口接wifi模块发送数据,现在是想把这个模块做成一个完整的东西,串口设备这边发送的数据长度都是未知的,(当然格式可以自己定义),无论发送什么数据长度,模块这边都能接收到的这个数据,然后通过打包发送给对方模块在解包恢复原数据给另一个串口设备
此帖出自stm32/stm8论坛

点评

可以,就是串口转wifi模块嘛,能做。  详情 回复 发表于 2016-10-12 13:59
 
 
 

回复

95

帖子

2

TA的资源

一粒金砂(中级)

8
 
le062 发表于 2016-10-12 13:14
https://github.com/versaloon/vsf/blob/master/vsf/component/buffer/buffer.c

参考里面关于fifo的处理 ...

这个就是对循环缓冲区的操作?
此帖出自stm32/stm8论坛
 
 
 

回复

565

帖子

0

TA的资源

一粒金砂(高级)

9
 
通过时间法接收,波特率已知的话,就可以计算出一个字节需要的时间,如果超过一个字节需要的时间,那么就认为一帧数据接收完成
此帖出自stm32/stm8论坛
 
个人签名stm32/LoRa物联网:304350312
 
 

回复

732

帖子

2

TA的资源

纯净的硅(中级)

10
 
李嘉辉 发表于 2016-10-12 13:28
我在做这样一个模块,这个模块的一个串口接串口设备,另一个串口接wifi模块发送数据,现在是想把这个模块 ...

可以,就是串口转wifi模块嘛,能做。
此帖出自stm32/stm8论坛

点评

就是在做这个东西  详情 回复 发表于 2016-10-12 14:06
 
个人签名亚里士缺德
 
 

回复

95

帖子

2

TA的资源

一粒金砂(中级)

11
 
汤权 发表于 2016-10-12 13:59
可以,就是串口转wifi模块嘛,能做。

就是在做这个东西
此帖出自stm32/stm8论坛

点评

做完求分享啊  详情 回复 发表于 2016-10-12 14:12
 
 
 

回复

732

帖子

2

TA的资源

纯净的硅(中级)

12
 
李嘉辉 发表于 2016-10-12 14:06
就是在做这个东西

做完求分享啊
此帖出自stm32/stm8论坛

点评

才开始做呢,设计到很多算法呢,需要攻克啊  详情 回复 发表于 2016-10-12 17:30
才开始做呢,设计到很多算法呢,需要攻克啊  详情 回复 发表于 2016-10-12 17:30
 
个人签名亚里士缺德
 
 

回复

95

帖子

2

TA的资源

一粒金砂(中级)

13
 

才开始做呢,设计到很多算法呢,需要攻克啊
此帖出自stm32/stm8论坛
 
 
 

回复

95

帖子

2

TA的资源

一粒金砂(中级)

14
 

才开始做呢,设计到很多算法呢,需要攻克啊
此帖出自stm32/stm8论坛
 
 
 

回复

169

帖子

0

TA的资源

一粒金砂(中级)

15
 
做个在缓存,用指针,
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表