51单片机--通信/串口

通信协议

UART(异步)、I2C(同步)、SPI(同步)、ADC、GPIO


UART**:Univesal Async Recvie Transmit,通用异步收发器,可以实现与外界设备进行异步**
通信****全双工、串行、异步

通信方式

单工通信


(1)数据的发送方和接收方是固定的
(2)数据传输是通过一根信号线完成,数据传输的方向是单一的

半双工通信(I2C)


(1)通信双方既可以作为数据的发送方,也可以作为数据的接收方
(2)数据传输是通过一根信号线完成,数据传输的方向可以是双向的
(3)在同一时刻,数据传输只能是单向的

全双工通信


(1)通信双方即可以作为数据的发送方,也可以作为数据的接收发
(2)数据传输是通过两根信号线完成,数据传输的方向是双向的

数据传输

传输顺序

LSB先行原则,先发送数据低位

传输形式

串行传输:通过一根信号线传输数据,按照先后次序逐个bit逐个bit发送数据

并行传输:通过多根信号线同时去传输数据

传输特点

串行:
(1)传输速率慢
(2)硬件成本低,实现简单
(3)传输距离远,抗干扰性好(RS485 1200米 双绞线)
并行:
(1)传输速率快
(2)硬件成本高,实现复杂
(3)传输距离近,抗干扰性差(30米以内)

串口通信

串口通信时序

  1. 先发送一个bit的低电平,代表起始位
  2. 再发送8个bit的数据位(先发送数据低位,再发送高位)
  3. 发送一个bit的校验位(奇偶校验 高电平 奇校验 低电平 偶校验)
  4. 发送一个bit的电平,代表停止位,表示串口通信结束

奇偶校验

奇校验:校验位是'1',用数据位中'1'的个数加上校验位的'1',如果'1'的个数是奇数个,代表奇校验通过

偶校验:校验位是'0',用数据位中的'1'的个数加上校验位的'0',如果的'1'的个数是偶数, 代表偶校验通过

通信参数

波特率:bps(bit per second),每秒钟传输bit的数量,常见的波特率:2400,4800, 9600,115200

数据位: 8,串口传输通常8bit数据位传输

停止位: 1,1bit停止位

校验位: None,N,无校验 Even,E,偶校验 Odd,O,奇校验

通信方式

同步: 通信的双方有一根共享的时钟线来约定通信的频率(同步发送数据/接收数据)
SCL:时钟线 SDA:数据线

异步: 通信双方没有时钟线进行同步,如uart可以通过设置波特率来实现同步(发2400bps 收:2400bps)
CH340:电平转换芯片,将串口电平(TTL电平)转换为USB电平
TTL电平:高电平(1): 3.3V 5V 低电平(0):0V
RS232电平(负逻辑):高电平(1):-3V - -15V 低电平(0):3V - 15V MAX232芯片
RS485电平(差分):高电平(1):2V - 6V 低电平(0) :-6V - -2V

寄存器配置

串口寄存器

SCON
PCON

串口初始化

相关推荐
西安同步电子1 小时前
时统卡驱动踩坑:Windows 和 Linux 下时间同步的底层差异
linux·stm32·单片机
xiangw@GZ1 小时前
Keysight示波器型号命名规范
嵌入式硬件
女神下凡1 小时前
芯参谋(69):LED恒流驱动芯片电路设计指南
arm开发·人工智能·单片机·嵌入式硬件·设计规范
wanglong37132 小时前
Keil编译后自动重命名HEX文件
单片机·1024程序员节
iCxhust3 小时前
stm32f103c8t6 boot0设置
stm32·单片机·嵌入式硬件·1024程序员节
创界工坊工作室4 小时前
58-基于51单片机的多自由度机械手控制系统设计
stm32·单片机·嵌入式硬件·51单片机·proteus
思麟呀5 小时前
嵌入式入门(四)USART 串口深度解析:单片机第一次与电脑对话
c语言·单片机·嵌入式硬件·1024程序员节
BSD_HY5 小时前
薄膜开关分压网络接 MCU ADC:通道复用下的两个坑
单片机·薄膜开关·源头工厂
NamoAmitabha1285 小时前
BSP,板级支持包--deepseek
单片机·嵌入式硬件·fpga开发
小白今天也很酷5 小时前
MCXN947更新板载DAP_Link固件的方法
c语言·python·单片机·ubuntu·excel·1024程序员节