计算机串口通信时缓存区能存多少条数据,是不是接收到的一条数据会覆盖上一条
3个回答
展开全部
波特率角度来讲,用来接收的那个地址指针所对应的地方肯定是会在下一次被覆盖的。而且一次性内存空间是有限大小的。串口这种方式速率很低,所需的buffer也不大。一般不超过一兆吧。小的很。
一般称之为乒乓buffer。奇数时间放在bufferA,偶数时间放在bufferB (这就好比火车站的两个站台)。 在A卸货的时候,B准备接收新车。 A清空了 接新车,B就在卸货。所以总体上看是连续的。
但是在刚接收到准备接收下一次的间隙,都会转存到别的地方。 如果你接收到的信息能在下一次来之前及时处理完毕,那么就没必要转存,及时消化掉就行了。
需要转存的情况是信息量大,需要分多次传完,这时候就完全取决于你的消息到底有多长了。 只要外存足够大(站台边的仓库),管他多长都没事,只要及时把bufferA或者B的站台的东西及时搬到仓库,清空的站台及时留给下趟车来再用。
一般称之为乒乓buffer。奇数时间放在bufferA,偶数时间放在bufferB (这就好比火车站的两个站台)。 在A卸货的时候,B准备接收新车。 A清空了 接新车,B就在卸货。所以总体上看是连续的。
但是在刚接收到准备接收下一次的间隙,都会转存到别的地方。 如果你接收到的信息能在下一次来之前及时处理完毕,那么就没必要转存,及时消化掉就行了。
需要转存的情况是信息量大,需要分多次传完,这时候就完全取决于你的消息到底有多长了。 只要外存足够大(站台边的仓库),管他多长都没事,只要及时把bufferA或者B的站台的东西及时搬到仓库,清空的站台及时留给下趟车来再用。
追问
串口一次只能发1个字节,如果超过了给怎么发
展开全部
如果你是问串口的硬件级缓冲区,那么取决于主板所采用的串口芯片型号。
目前大部分主板的串口部分都是类16C550的,本身具有16字节深度的FIFO,可通过驱动程序接口将FIFO开启或关闭。
另外就算没有FIFO,最基本的串口硬件构造也是由一个保持寄存器和一个移位寄存器组成的,至少能够缓冲一个字节。
目前大部分主板的串口部分都是类16C550的,本身具有16字节深度的FIFO,可通过驱动程序接口将FIFO开启或关闭。
另外就算没有FIFO,最基本的串口硬件构造也是由一个保持寄存器和一个移位寄存器组成的,至少能够缓冲一个字节。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这看你缓存区大小和数据长度
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询