一.串行通信
串行通信,一次只能发送一位,要发送8次才能发送一个字节,串口通信低位在前。
uart简介:通用异步收发器,是一种通用的串行,异步的通信总线,该总线有两条数据线,可以实现全双工的发送和接收,在嵌入式系统常用于主机与辅助设备之间的通信。
二.波特率(baud)
发送二进制数据的速率,发送一个二进制数据的持续时间,1/baud。在通信之前必须要约定好,收发一致。
三.串行数据帧
起始位+8位数据(从低到高)+奇偶校验位+停止位+空闲位
四.Rs232通信接口(9针)
1.载波检测DCD
2.接受数据RXD
3.发送数据TXD
4.数据终端准备好DTR
5.信号地线GND
6.数据准备好DSR
7.请求发送RTS
8.清除发送CTS
9.振铃提示Rl
TTL/CMOS电平标准:
高电平‘1’>2.xV
低电平'0'>0.xV
232电平标准(不能直接对接例如5v的单片机):
高电平‘1’>-3v~-15V
低电平‘0’<+3v~+15v
通常情况下用MAX232转接芯片:
五.USB转串口通信
二级管4148是为了方便程序下载,反向截至,阻挡单片机里面的电流影响,如果要做一个下载器,最好加上。
六.软件部分把RXD和TXD作为普通IO口实现uart通信
起始位+8位数据位+停止位
例:输入1,加一为2返回
void main() { EA=1; configUART(9600);//配置波特率 while(1) { while(PIN_RXD);//低电平检测 StartRXD(); //接收 while(!RxdEnd); StartTXD(RxdBuf+1);//发送 while(!TxdEnd); } } void ConfigUART(unsigned int baud) //配置波特率 { } void StartRXD() //RXD接收状态 { } void StartTXD(unsigned char dat) //TXD发送状态 { } void InterruputTimer0() interruput { static unsigned char cnt=0; //发送到哪了 。。。。。。。 }
七.uart通信模块
SCON
波特率发生器
串口通信程序的基本步骤