当前位置:  技术问答>linux和unix

分块从串口发送图片数据,总是丢失部分数据,救命~急!急!急!急 (100分)在线等

    来源: 互联网  发布时间:2016-05-12

    本文导语:  各位牛人,我在这里先谢谢您看这个帖子了!     我现在做的是用arm9,linux系统通过串口把大小是20k的图片发送到无线通讯模块。     方法是,先把图片mmap到内存,然后分段发送到串口,通过串口到通讯模块发...

各位牛人,我在这里先谢谢您看这个帖子了!

    我现在做的是用arm9,linux系统通过串口把大小是20k的图片发送到无线通讯模块。

    方法是,先把图片mmap到内存,然后分段发送到串口,通过串口到通讯模块发送到pc机,第一次测试的是5k的图片,

没有问题,第二次测试是20k的txt文件,没有问题,但是发送20k的图片的时候(3次测试都用一个方法),数据在发送一部分后出现丢失情况,并且丢失的大小和位置不确定,请问这是什么原因造成的呢?

    我怀疑一个是通讯模块的缓冲小,不能完成串口发送数据的全部传输,导致数据丢失,还有就是串口本身问题,使得数据丢失,再就是内存读取使得数据丢失。

    现在非常着急,赶着救命啊,各位大大,走过路过,指点一二啊,我感激不尽@如果能告诉解决的办法就更好了,现在

只能用串口传输,请帮帮忙看看~~~!!!!!!!!!!!!!!!!!!!!!!!!!
    

|
加校验,错误重传

|
要找出原因,可以试一下下面的方法;
既然你是用的无线模块,可能比较好做: 把串口接到无线模块那端的通信线都接到你PC的串口上,监视接受的数据,看数据是否有丢失的情况,从而可以判断是你的主机端或者是无线模块丢包,具体连接咨询一下你们的硬件工程师,着也是调试BT等常用的方式.

|
我认为应该是流量控制的问题。

|
如果你怀疑无线模块的内部缓存?那将包尽量放小,然后包加上校验并且等待接收方确认收到包之后再发下一包,确保数据正确完整到达!

按理说,你20K的txt文件都没有问题,图片应该没有问题! 另外注意下串口ESCAPE字符的问题!
-------------------------------------------

不知道你走的什么协议? 你的无线模块是指GSM/GPRS无线模块么?是在arm上,通过ppp将无线模块拨上网,通过GPRS进行的数据传输么? 还是其它方式?

|
一般的串口传输数据,最好自己定义一套通讯协议,比如规定一包数据有多长,发送的数据如何应答,怎么超时重传,怎么效验等等,不能完全依赖底层的串口协议.

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • asp.net文件分块下载的实现代码
  • python算法学习之桶排序算法实例(分块排序)
  • 关于php支持分块与断点续传文件下载功能代码


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3