读书人

请问关于串口缓冲区的有关问题。初学

发布时间: 2012-01-09 21:05:42 作者: rapoo

请教关于串口缓冲区的问题。初学,不是很清楚。
使用mscomm时,从A设备发送到B设备时,
首先A将输出传到A的发送缓冲区,然后由A的发送缓冲区传给B的接受缓冲区,在由B的接受缓冲区传给B设备。
那么B的发送缓冲区发送的是什么?A的接受缓冲区在此期间收到的是什么?



[解决办法]
LZ:串口间传送的是2进制字节流(由低高电平脉冲组成遵守通信协议的信号)
[解决办法]
串口通讯通常都是与单片机进行通讯,接口是RS232,而这种用法通常在8位的单片机使用比较广泛。
而8位的单片机每次都是发送8个二进制位即一个字节过来,只是连续的发送了很多字节而已。
给你看个51单片机发送字符串的 Keil C 的一个小范例。

C/C++ code
...    //这里就是调用发送数据到串口的单片机发送过程    SendBufToPort("AT89S52",7);...//发送数据给串口void SendToPort(unsigned char Buf){    SBUF= Buf;    while(TI==0);    TI=0;    delay(200);   //发送完后进行延时,防止连续发送数据时出错}//发送数据给串口void SendBufToPort(unsigned char Buf[],unsigned char Num){    unsigned char j;    //由这可以看出是循环每个字节每个字节发送的    for(j=0;j<Num;j++)    {        SendToPort(Buf[j]);  //调用单个发送函数    }}
[解决办法]
探讨
是不是可以这样认为。pc发送给单片机时,pc先把数据一位位的发到发送缓冲中,然后发送缓冲区把数据一位位发给单片机的接收缓冲区。但是单片机的发送缓冲区在这时候发送的是什么?

读书人网 >VB

热点推荐