0 0

串口溢出模拟的问题15

我写了个模拟程序,大意为发送方向接收方发送数据,直至接收方的ReadBuffer容量到达上限4096个字节,使其缓冲区溢出。

在实际程序中发现一个疑问,因为我使用的握手协议为'xonxoff',其在msdn的定义是是,在接收方缓存的剩余小于等于1024字节时,接收方通知发送方xoff,让期停止发送数据。当接收方缓存回落至1024字节以下时,接收方通知发送方xon,让期继续发送。但程序实际的运行结果为第一种情况OK。而第二种情况时,将接收方缓存区的数据清空后,接收方不会通知发送方xoff,而造成二方的无线期等待。我猜想这个发关xon/xoff的过程,好像是 C#已经给我们封装好,程序运行后,自动在处理,我能手动的对期进行控制嘛?像第二种情况发生后,我手动的发送一个xoff通知。

第二个问题是,当发送方的发送缓存区满时,我想再发送点数据,该数据是否还会被发送缓冲区接收,或者该数据直接就被丢掉了?

我的环境是:vs2005 sp1 Framework 2.0
  二串口之间没有用到硬件的零解调,而用是的'VSPD XP 5',虚拟了二个串口的连接。

msdn对握手协义的定义:http://msdn.microsoft.com/zh-cn/library/system.io.ports.serialport.handshake%28v=VS.90%29.aspx
2011年6月21日 09:35
目前还没有答案

相关推荐

    串口学习资料 模拟串口

    通过设置定时器的溢出中断,我们可以精确地控制数据的发送间隔,从而实现不同速率的串口通信。例如,如果我们希望设置9600波特的串口,就需要计算出每发送一个比特所需的时间,并将这个时间间隔设为定时器的计数周期...

    STM8S003F IO口模拟串口源码.zip_STM8S IO口 模拟 串口 源码_STM8S003F_STM8S模拟串口_r

    为解决这一问题,开发者可以利用通用输入/输出(GPIO)引脚来模拟额外的串口,从而实现虚拟串口的功能。 "STM8S003F IO口模拟串口源码.zip" 包含了用于在STM8S003F上实现IO口模拟串口的源代码。其中,`suart.c`和`...

    nrf51822硬件串口及GPIO模拟串口,串口带有环形缓冲区

    **环形缓冲区**是串口通信中的重要组成部分,它可以有效地解决中断接收数据的异步问题。环形缓冲区是一种特殊的数据结构,像一个循环队列,当缓冲区满时,新进来的数据会覆盖旧数据,而不会导致数据溢出。在nRF51822...

    单片机软件模拟串口收发

    单片机软件模拟串口收发是解决硬件资源有限情况下扩展通信接口的一种有效技术。在很多嵌入式系统中,单片机可能只有有限数量的物理串口,但实际应用中可能需要更多的串行通信接口。这时,我们可以通过软件编程的方式...

    C51模拟串口通讯 C51模拟串口通讯

    C51模拟串口通讯是微控制器编程中的一个重要概念,主要应用于不具备硬件串行接口(如UART)的C51微控制器上。C51是Atmel公司为8051系列微控制器开发的一种高级语言,它使得程序员能更方便地进行底层硬件操作。 在...

    STM8S103系列IO模拟串口通信实现真正串口

    在某些应用场景中,可能因为硬件资源限制或者设计需求,我们需要通过IO端口模拟串口通信,而不是使用真正的UART(通用异步收发传输器)模块。本实验就详细讲解了如何通过IO口模拟串口通信,并以STM8S103为例,展示了...

    单片机IO口模拟串口程序

    在单片机编程中,有时候会遇到串行通信接口(UART)数量不足的情况,这时就需要通过软件和硬件的配合来模拟一个串口。本程序就是针对这种情况,利用单片机的IO口模拟串口通信,具体是用P2.1引脚作为发送端,模拟串口...

    51模拟串口的几种方法

    为了应对这种情况,可以通过软件模拟实现额外的串口功能,这就是所谓的“模拟串口”。本文将探讨三种在51单片机上模拟串口的方法。 首先,第一种方法是延时法。这种方法基于精确的延时控制,利用51单片机的I/O引脚P...

    HT单片机 模拟串口

    为了解决这个问题,工程师可以通过编程手段在单片机内部创建一个或多个虚拟串口,这种方法称为模拟串口。 模拟串口的实现主要依赖于单片机的GPIO(通用输入/输出)引脚和定时器。首先,通过设置GPIO引脚模拟发送和...

    STm32模拟串口实验_模拟串口_STM32F103_

    然而,在某些情况下,实际应用可能需要的串口数量超过了STM32F103硬件提供的串口数目,这时就需要利用软件来模拟串口,即所谓的“模拟串口”或“软件串口”。 模拟串口是通过GPIO(通用输入/输出)引脚和定时器来...

    模拟串口的C语言程序

    此外,由于是软件模拟,程序需要做好资源管理,如合理安排缓冲区大小和处理可能的缓冲区溢出问题。 在实际应用中,模拟串口程序可以与虚拟串口驱动结合使用,进一步增强开发和调试的灵活性。虚拟串口驱动能够在...

    IO_INT0(OK).rar_中断模拟串口_模拟串口接收

    标题"IO_INT0(OK).rar_中断模拟串口_模拟串口接收"暗示了这是一个关于利用外部中断INT0来实现串口通讯的项目,其中中断模拟串口是关键部分,而描述则提供了更具体的信息,即通过这种模拟方式,MCU能够一次接收并转发...

    STM32 模拟串口

    STM32 模拟串口是一种在STM32微控制器上实现串行通信的方法,当硬件串口资源不足或者特定应用场景需要多个串口时,可以通过软件编程来模拟串口功能。这种技术通常基于通用输入输出(GPIO)引脚和定时器来实现。以下...

    51单片机模拟串口

    ### 51单片机模拟9600波特率串口收发技术解析 #### 一、概述 在嵌入式系统开发过程中,有时需要在不具备内置硬件串口的单片机上实现串行通信功能。本文将详细介绍如何利用51系列单片机通过软件编程的方式模拟一个...

    STM32的GPIO口模拟串口通信

    STM32的GPIO口模拟串口通信是一种在没有硬件UART(通用异步接收发送器)支持的情况下,利用STM32微控制器的通用输入/输出端口(GPIOs)实现串行通信的技术。在某些项目中,由于资源限制或设计需求,可能需要通过GPIO...

    IO模拟UART串口 C语言

    本文将详细讲解如何使用C语言在FT32F0xxx芯片上通过IO模拟UART串口,实现9600波特率的稳定通信,并讨论其可移植性。 首先,我们需要理解UART的工作原理。UART是一种半双工通信协议,数据以起始位、数据位、奇偶校验...

    keil下STM32F1使用IO模拟串口_模拟串口_stm32f1_

    - 在没有硬件握手协议的情况下,模拟串口可能会面临同步问题。可以通过添加起始位和停止位,以及数据校验位来提高通信的可靠性。 7. **代码实现**: - 在Keil μVision中,可以使用HAL库或LL库来简化STM32的GPIO...

    STM8模拟串口

    STM8模拟串口是针对STM8微控制器的一种通信机制,它允许STM8芯片在没有硬件UART(通用异步收发传输器)的情况下实现串行通信功能。STM8是一款8位微控制器,由意法半导体(STMicroelectronics)制造,广泛应用于...

    io模拟串口

    在嵌入式开发中,有时会遇到STM32微控制器的串口资源不足的情况,这时可以利用GPIO(General Purpose Input/Output)引脚来模拟串口通信,这就是所谓的"IO模拟串口"技术。STM32是意法半导体公司推出的基于ARM Cortex...

    51单片机模拟串口的三种方法

    为了解决这个问题,开发者可以通过软件模拟来实现第二个串口功能。本文将详细介绍三种51单片机模拟串口的方法。 首先,我们来理解模拟串口的基本原理。模拟串口是通过利用51单片机的I/O引脚(例如P1.0和P1.1)来...

Global site tag (gtag.js) - Google Analytics