电脑间使用串口通信传输数据

一、串口通信概述

串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节。

串行接口简称为串口,串行接口 (Serial Interface)是指数据一位一位地顺序传送。实现双向通信就需要一对传输线,即TX与RX线。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配

二、操作过程

(一)接线

RX->TX
TX->RX

(二)通过串口传输数据

按照上示连接好了之后,连接两台电脑,打开每个电脑的串口助手,并打开串口
将波特率选择为115200
发送端:
在这里插入图片描述
接收端:
在这里插入图片描述
发送时间:
在这里插入图片描述
实际时间:216s
预计时间:186s

三、总结

本次实验通过两个usb to ttl在两台pc机之间进行了大文件的传输,实验结果表明,串口的实际传输速率是要低于理论速率的。

四、引用

【ty_sj】电脑间通过串口传输数据【串口练习】

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是基本代码: ```c #include <reg51.h> #define FOSC 18432000ul // 时钟频率 #define BAUD 9600ul // 波特率 #define DIV_THX(x) ((char)(256 - (FOSC / (12ul * BAUD * x)))) void init_uart() // 初始化串口 { // 配置波特率 TMOD |= 0x20; // 采用定时器1作为波特率发生器 TH1 = DIV_THX(1); // 波特率发生器初值 TL1 = DIV_THX(1); // 波特率发生器重装值 TR1 = 1; // 启动波特率发生器 // 配置数据格式 SCON = 0x50; // 工作在模式1(8位数据,可变波率) ES = 1; // 允许接收中断 EA = 1; // 全局中断使能 } void send_data(char c) // 发送1个字节 { SBUF = c; while(!TI); // 等待发送完成 TI = 0; // 发送完成标志清零 } void send_string(char *s) // 发送字符串 { while(*s != '\0') { send_data(*s); s++; } } char receive_data() // 接收1个字节 { while(!RI); // 等待接收完成 RI = 0; // 接收完成标志清零 return SBUF; } void receive_string(char *s) // 接收字符串 { do { *s = receive_data(); s++; } while(*(s-1) != '\r'); // 输入回车结束 *(s-1) = '\0'; // 字符串结束符 } void main() { init_uart(); while(1) { char s[50]; send_string("Input some data: "); receive_string(s); // 接收字符串 send_string("Received data: "); send_string(s); // 发送字符串 send_data('\n'); send_data('\r'); } } void uart_interrupt() interrupt 4 // 串口中断处理程序 { if(RI) { RI = 0; // 接收完成标志清零 // 收到数据以后的处理 } if(TI) { TI = 0; // 发送完成标志清零 // 发送下一个数据 } } ``` 请注意:这篇文章只是代码的展示,为了编写代码的完整性和清晰性,省略了相关说明和注释。如果您要使用这段代码,请认真阅读详细的说明和注释,避免出现任何的错误和问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值