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

URAT串口通信协议

UART是异步串行全双工总线,面向设备和设备之间的连接

配置相关内容

1、串口为串行通讯方式,代表一个时钟周期,只可以收发一位数据

2、115200代表什么,以及115200单位 单位:bps(比特率、二进制/秒)

115200代表:1S钟可以传输115200bits数据

115200倒数代表:表示收发1位数据所需要的时间

3、8N1代表什么

8:8位数据位

N:无奇偶校验位

1:1位停止位

协议

1、空闲态

空闲态处于高电平状态,总线没有进行数据传输时,总线处于空闲状态

2、起始信号

串口通信开始的标志,起始信号处于低电平状态

3、数据位

串口完成数据的收发,数据位可以设置为7位/8位/9位

4、校验位

奇校验:数据位和校验位1的个数为奇数

假设发送的数据为0x55(01010101),校验位:1

假设发送的数据为0x51(01010001),校验位:0

偶校验:数据位和校验位1的个数为偶数

假设发送的数据为0x55,校验位:0

假设发送的数据为0x51,校验位:1

5、停止位

1)发送数据结束的标志,停止位处于高电平状态

2)校准时钟源,因为串口采用的是异步通讯,双方都有自己独立的时钟源

但是在实际的数据传输过程中,一帧数据传输完成之后,肯定会存在误差

越往后,误差越大,导致收发数据不准确

框图

通过以上框图分析可知,需要分析芯片手册RCC/GPIO/UART章节

1、RCC章节:使能GPIOG/GPIOB/UART4组控制器

2、GPIO章节:1)设置复用功能模式 2)设置复用功能为串口功能

3、UART章节:1)初始化(115200.8N1) 2)完成数据收发

1、RCC章节

使能GPIOG/GPIOB/UART4组控制器

查看相关手册,找到对应的总线和对应的寄存器

1、确定RCC控制器通过哪根总线与cortex-A7进行连接 ===> AHB4总线

2、确定GPIO控制器通过哪根总线与cortex-A7进行连接 ===> AHB4总线

3、确定UART控制器通过哪根总线与cortex-A7核进行连接 ===> APB1总线

2、GPIO章节:

1)设置复用功能模式

2)设置复用功能为串口功能

3、UART章节:

内部框图

1)初始化(115200.8N1)

2)完成数据收发

 


http://www.kler.cn/news/135500.html

相关文章:

  • 05_常用API
  • MIB 6.1810操作系统实验:准备工作(Tools Used in 6.1810)
  • Flink(七)【输出算子(Sink)】
  • opencv(5): 滤波器
  • 四旋翼无人机的飞行原理--【其利天下分享】
  • ES6中实现继承
  • 基于变形卷积和注意机制的带钢表面缺陷快速检测网络DCAM-Net(论文阅读笔记)
  • 开源与闭源软件的辩论:对大模型技术发展的影响
  • 基于非洲秃鹫算法优化概率神经网络PNN的分类预测 - 附代码
  • 常见的面试算法题:阶乘、回文、斐波那契数列
  • 【数据结构】树与二叉树(廿一):树和森林的遍历——先根遍历(递归算法PreOrder、非递归算法NPO)
  • Redis内存满了会宕机吗
  • 【Python百宝箱】掌握Python Web开发三剑客:Flask、Django、FastAPI一网打尽
  • 【Django-DRF用法】多年积累md笔记,第(4)篇:Django-DRF反序列化详解
  • Ubuntu 18.04/20.04 LTS 操作系统设置静态DNS
  • Hive常见的面试题(十二道)
  • 【JS】Chapter13-构造函数数据常用函数
  • 【python基础】类详解:如何编写类、__init__()、修改实例属性、类存储到模块并导入、py标准库、编写类的约定
  • STM32硬件调试器不一定准确,proteus不一定准确
  • Motion Plan之搜素算法笔记
  • Ubuntu(Linux)的基本操作
  • 什么是Mock?为什么要使用Mock呢?
  • 深度学习乳腺癌分类 计算机竞赛
  • 《微信小程序开发从入门到实战》学习二十二
  • Vue3新增加的css语法糖
  • 牛掰的dd命令,cpi0配合find备份(不会主动备份),od查看
  • 测试Bard和ChatGPT关于双休的法规和推理
  • 【Java 进阶篇】Ajax 实现——JQuery 实现方式 `ajax()`
  • java学习part06数组
  • UDP网络套接字编程