串口缓冲区的问题

borlandband 2003-10-16 10:28:48
因为初学不是很了解,所以问一下:
串口在通信过程中,如果上位机缓冲区已满,下位机是继续发送呢?还是自动停止发送?这个机制是需要程序编制还是在串口本身存在的机能?
如果说缓冲区已满,或者溢出,这样的话上位机在从缓冲区读取数据的时候会有什么问题发生?
现在我的程序在读串口数据时经常有异常发生,掉字节,无数据等等,不排除下位机的问题。该如何解决?
求教大家。谢谢。
...全文
301 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
borlandband 2003-10-17
  • 打赏
  • 举报
回复
然,先假设我的下位机没有问题,它每秒钟发送一次数据,我也通过定时器每秒钟读取一次数据,照此理想状态它会有什么问题吗?仿佛没有。
然,是否通信过程中的干扰,数据掉包,延时。。等其他在实际中会发生的问题对于数据发送传输造成的问题该是如何分析与解决呢?
tyzyx(tyzyx) :”最好有一个线程监视串口。“
这个方法应该是可行的吗,只要有数据来我就读取,很可惜的是多线程及事件等待触发这个过程我不会作(JUST A BEGINNER!).
borlandband 2003-10-17
  • 打赏
  • 举报
回复
收到。多谢。
缓冲区的溢出对读取后来到达的数据有影响吗?比如说1秒来一组数据,1分钟后缓冲区满了,但是下位机继续发送第61组数据,好了,现在溢出,此时我去读取串口:是否只是第0组数据有问题了,还是解下来的几组?那第61组呢 ?概括的说即使缓冲区的溢出是个什么具体情况,它损坏了哪几组数据?
tyzyx 2003-10-17
  • 打赏
  • 举报
回复
上位机应当采用动态开僻缓冲区的做法。最好有一个线程监视串口。
sun4216 2003-10-17
  • 打赏
  • 举报
回复
串口通讯中,双方的交互是人为控制的(这一点不同于USB);下位机不可能知道上位机的情况(象缓冲区满,校验错误之类)。
duyhui 2003-10-17
  • 打赏
  • 举报
回复
上位机缓冲区已满,下位机是继续发送.这样就导致你的上位机缓冲区的数据溢出。所以需要你程序控制。
如果说缓冲区已满,或者溢出,这样的话上位机在从缓冲区读取数据的时候,那数据肯定会不正确了。

通信时发生异常等情况,可能是你的串口属性或者数据的操作还有问题。
给你介绍个网站http://www.gjwtech.com/不错!
borlandband 2003-10-17
  • 打赏
  • 举报
回复
up myself!

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧