RS232、RS485和TTL电平与UART串口通信

RS232、RS485和TTL电平与串行通信

传送门
这篇文章很详细的对通讯各概念进行的解释

RS232 RS485 TTL同属于异步串行通信,这三种通信方式本质上是电平逻辑的区别。

串口通信初步认识

1、并行通信:通信时数据的各个位同时传送,可以实现字节为单位通信,但是通信线多占用资源多,成本高。
2、串行通信,一次只能发送一位,要发送8次才能发送一个字节。

在这里插入图片描述
GND为单片机系统电源参考地
TXD为串行发送引脚
RXD为串行接收引脚

在这里插入图片描述低位先发,高位后发
波特率:发送二进制数据位的速率

IO口模拟串口通信原理

检测到接收口低电平
启动接收函数,设置中断时间(接收函数读取一个数据位的中间状态)
中断函数对数据位进行处理,处理到结束位时,设置标志,停止中断
发送函数也是类似

UART串口通信

通信三种基本类型
【1】单工通信:只允许一方向另外一方传送信息,另一方不能回传信息,比如电视遥控器、收音机广播等。
【2】 半双工通信:数据可以在双方之间传播,同一时刻只能其中一方发给另外一方,比如对讲机就是典型半双工。
【3】 全双工通信:发送数据的同时也能够接收数据,两者同步进行,比如我们的电话通信。

模块介绍

SCON——串行控制寄存器的位分配(地址0x98、可位寻址)

寄存器介绍
在这里插入图片描述该波特率发生器只能由定时器T1或定时器T2产生
发送和接收数据缓冲存放在SBUF寄存器中
对信号进行采集16次,判断其中三次的数值

通信实例

#include <reg52.h>
void config(unsigned int baud);
void main()
{
	EA=1;
	config(9600);
	while(1);
}
void config(unsigned int baud)
{
	SCON=0X50; //配置串口为模式1
	TMOD&=0X0F;	
	TMOD|=0X20;	//配置T1为模式2	 即8位重装模式
	TH1=256-(11059200/12/32)/baud;
	TL1=TH1;   //这里设置定时器1主要是用来作为波特率发生器,故不使能中断
	ET1=0;	   //禁止T1中断
	ES=1;	   //使能串口中断
	TR1=1;	   //启动T1
}
 void InterruptUART() interrupt 4
 {
	if(RI)	//接收完毕
	{
		RI=0;
		SBUF=SBUF+1;
	}
	if(TI)	//发送完毕
	{
		TI=0;
	}
 }

一个通讯例子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王蒟蒻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值