当前位置: 首页 > news >正文

通信协议之串口

文章目录

  • 简介
  • 电平标准
  • 串口参数及时序
  • USART与UART
  • 过程
  • 引脚配置

简介

  • 点对点,只能两设备通信
  • 只需单向的数据传输时,可以只接一根通信线
  • 当电平标准不一致时,需要加电平转换芯片(一般从控制器出来的是信号是TTL电平)
  • 地位先行

电平标准

TTL电平:+3.3V或+5V表示1,0V表示0
RS232电平:-3~-15V表示1,+3~+15V表示0
RS485电平:两线压差+2~+6V表示1,-2~-6V表示0(差分信号)

串口参数及时序

波特率:串口通信的速率
起始位:标志一个数据帧的开始,固定为低电平
数据位:数据帧的有效载荷,1为高电平,0为低电平,低位先行
校验位:用于数据验证,根据数据位计算得来(奇检验:包括检验位在内的9个数据的1是奇数个)
停止位:用于数据帧间隔,,固定为高电平,空闲时也为高电平,长度0.5,1,1.5,2常用1
字长:8位和9位,一般是8位无校验和9位有校验

  • 无检验
    在这里插入图片描述
  • 有校验在这里插入图片描述

USART与UART

USART (Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步收发器
UART是异步
串口一般很少用同步功能

过程

  • 发送:先到发送数据寄存器(TDR),再到发送移位寄存器,把一个字节的数据一位一位地向右移出去(低位先行)
    • 当发送时,数据先在TDR,检测发送移位寄存器是否非空,空则将数据移动到发送移位寄存器,再置标志位TXE(TX Empty),发送寄存器空,若该标志位置1(数据还没发送出去,只是在发送移位寄存器中),就可以向TDR写入下一个数据了
  • 接收:先到接收移位寄存器,把发过来的位一位一位接收,再到接收数据寄存器(RDR)
    • 过程与上面类似,RDR有数据置标志位RXNE,置1就可以把数据读走

引脚配置

  • TX引脚:复用推挽
  • RX:浮空或上拉输入
http://www.dtcms.com/a/98449.html

相关文章:

  • Java面试黄金宝典22
  • 【Basys3】外设-灯和数码管
  • 使用ANTLR4解析Yaml,JSON和Latex
  • SpringSecurity配置(自定义退出登录)
  • CubeMx——串口与 printf 打印
  • Python每日一题(9)
  • MyBatis的第一天笔记
  • 标书工具私有部署技术方案
  • springmvc redirect 使用https后跳转到了http://域名:443问题处理
  • 梯度裁剪(Gradient Clipping)
  • 【商城实战(97)】ELK日志管理系统的全面应用
  • 大模型最新面试题系列:微调篇之微调框架(三)
  • MySQL 常见面试问题总结
  • web3包含哪些关键技术栈,一些成功使用场景的分享
  • [FGPA基础学习]分秒计数器的制作
  • flutter 专题 七十 Flutter应用开发之webview_flutter插件
  • C盘清理技巧分享:PE Dism++ 空间清理篇
  • Vue学习笔记集--watch
  • 【SQL】MySQL基础2——视图,存储过程,游标,约束,触发器
  • 关于音频采样率,比特,时间轴的理解
  • ai 项目练习(一)
  • AI来了,新手如何着手学习软件开发?
  • 基于kafka的分布式日志收集平台项目(续)
  • AnimateCC基础教学:随机抽取获奖名单及奖品-V1.0原型版
  • 双非一本毕业测试工作一年想转C++开发,嵌入式Linux与音视频方向哪个方向更合适?
  • JavaScript使用
  • 浅拷贝或深拷贝js数组或对象的方法
  • 常用数据库
  • 使用 Docker Compose 在单节点部署多容器
  • C++ 变量与初始化详解(十五)