请教关于串口缓冲区的问题。初学,不是很清楚。
使用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]); //调用单个发送函数 }}
[解决办法]