正点原子STM32F103(精英版)------串行通信

处理器与外部设备通信的两种方式:

并行通信

传输原理:数据各个位同时传输

优点:速度快

缺点:占用引脚资源多

串行通信

传输原理:数据按位顺序传输

优点:占用引脚资源少

缺点:速度相对较慢

2.串行通信

按照数据传送方向,分为:

单工:数据传输只支持数据在一个方向上传输

半双工:允许数据在两个方向上传输,但是,在某一适合,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信

全双工:允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。

串行通信的通信方式

同步通信:带时钟同步信号传输。---SPI,IIC通信接口(按照时钟同步信号一位一位传输)

异步通信:不带时钟同步信号。---UART(通用异步接发器),单总线   (不带时钟同步信号,双方必须约定好波特率进行传输)

常见的串行通信接口

 STM32的串口通信接口

UART:通用异步收发器

USART:通用同步异步收发器

大容量STM32F10X系列芯片,包含3个USART和2个UART

UART异步通信方式引脚连接方法:

-RXD:数据输入引脚。数据接受

-TXD:数据发送引脚。数据发送

串口号

RXD

TXD

1

PA10

PA9

2

PA3

PA2

3

PB11

PB10

4

PC11

PC10

5

PD2

PC12

UART异步通信方式特点

全双工异步通信。

分数波特率发生器系统,提供精确的波特率----发送和接受共用的可编程波特率,最高可达4.5Mbits/s

可编程的数据字长度(8位或者9位)

可配置的停止位(支持1或者2位停止位)

可配置的使用DMA多缓冲器通信

单独的发送器和接收器使能位

检测标志:①接受缓冲器  ②发送缓冲器空 ③传输结束标志

多个带标志的中断源。出发中断。

其他:校验控制,四个错误检测标志。

串口通信过程

 STM32串口异步通信需要定义的参数(参考野火P34视频)

①起始位

②数据位(8位或者9位)

③奇偶校验位(第9位)

④停止位(1,15,2位)

⑤波特率设置

 

串口通信协议简介

串口数据包的基本组成

 起始位:由1个逻辑0的数据位表示

结束位:由0.5、1、1.5或2个逻辑1的数据位表示

有效数据:在起始位后紧跟着的就是有效数据,有效数据的长度常被约定为5、6、7或8位长

校验位:可选,为的是数据的抗干扰性

1-奇校验 (odd)   2-偶校验 (even) 3-0校验(space)  4-1校验 (mark)    5-无校验(noparity)

奇校验

有效数据和校验位中“1”的个数为奇数

比如:一个8位的有效数据为 0110 1001    ,此时共有4个“1”,为达到奇校验效果,校验位为“1” ,最后传输的数据将是8位的有效数据加上 1位的校验位 总共为9位。

偶校验

有效数据和校验位中“1”的个数为偶数

比如:一个8位的有效数据为 0110 1001    ,此时共有4个“1”,为达到偶校验效果,校验位为“0” ,最后传输的数据将是8位的有效数据加上 1位的校验位 总共为9位。

0校验

不管有效数据中的内容是什么,校验位总为0

1校验

校验位总为1

无校验

数据包中不包含校验位

版权声明:本文为CSDN博主「Hustle_Z」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_60368817/article/details/121446543

生成海报
点赞 0

Hustle_Z

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

STM32F2————配置时钟延迟不准的问题

STM32F2配置时钟问题 笔者在本科毕业设计使用STM32F207芯片,但是在配置时钟时出现了问题。 问题 我按照F1写代码的延时函数放在F2竟然不准了 换个办法 使用Systick时钟也是不准,原因是笔者代

为什么重写printf函数没有用?

以前在网上找了无数方法去重写printf函数,但发现都没效果,今天偶然发现重写printf函数可以了,原因是以前没有勾选微库(Use MicroLlB)! 这里