ARM 笔记(1020)-- STM32部分--16

13 串口发送

如何判定按键按下的时间是多少?

我们需要用屏幕显示出来?

此外,我们想和C语言一样,程序的每个环节我们想要验证一下,我们也需要实时的去显示一些内容,这些都需要串口的功能去实现。

13.1通讯协议基础知识

通讯协议 有很多分类方式 按照不同的方式进行划分

根据通讯的方向分为

从实用的角度出发,我们关注的是根据通讯的方向分为

通信方式(三种)
单攻通讯 只有一根数据线 并且只能收或者发
半双工通信 只有一根数据线 收发不能同时进行
全双工通信 至少含有两个数据线 收发可以同时进行

根据数据的传输方式分为

串行通信

占用硬件IO少 数据一个比特位一个比特位的通过一根数据线传输

​ 数字传感器的读写、上位机和下位机的控制通信、

并行通信

​ 占用IO多,所有的比特位同时通过IO传输,每个IO只传输一个比特位

​ 通信速度要求高的场合,比如飞机雷达、卫星数据传输。

13.2 串行通信

串行的通信协议:对于通信双方通信的协议是一样的。

串行通信协议有哪些:分别适用于什么场合,他们描述了哪些内容?

常用的串行通信协议:

UART(串口) :上位机和下位机的通信 简单 传输距离只有两米以内。

单总线: 数字传感器 更节省硬件资源

SPI/I2C: 这是两种串行通信协议 广泛的应用于存储器和存储卡的读写。

通信协议的核心内容:

如何表示通信的开始,结束位,数据位,如何表示

通信的格式:

几个数据位打包一次,数据包不包含校验位,数据发送是地位在前还是高位在前。

常用的通信的接口:

常用的通信接口有哪些,分别用在什么地方。

DB9 9代表9针, HDMI VGA 485 UART CAN接口 camulink

接口的用处:

DB9 通常用来进行台式机串口通信的
HDMI 能传输视频及音频 投屏显示
VGA 只能传输视频信号
监控画面
军事打击目标及导弹飞行的监控画面
项目上雷达信号的显示
485/UART 485:我的理解485是一种电气标准 485的传输距离远高于UART,用于工业中的长距离有线串行传输的场合。
CAN 是一种总线技术,不是单纯的物理接口
camulink 是接口技术 相机的数据传输技术

用什么样的占空比表示1和0:?

电气标准:

电气标准有哪些?如何进行不同电气标准的切换?分别用在什么地方?

电气标准是用什么样的电平表示1和0?

电气标准有哪些? 电气标准是用什么样的电平表示1和0? 分别用在什么地方?
TTL 2.5-3.3V 表示1 0V表示0 MCU
RS232 +15V表示1 -15V表示0 台式机和特定工业设备
RS485 用两根数据线的电压差表示1和0 电压超过200mV是1否则是0

如何用MCU控制这些设备,实现RS232,TTL ,MAX3232 .

MCU想实现485通信,

RS422:逐渐被取代

串口通信的程序写法:




奇数偶数校验:

如果接收到的数据如果是奇数个

如果奇数校验接收到的数据没有奇数个怎么处理?丢掉当前数据,请求重新发送。

因为奇偶校验只有一个比特位是校验位,只能检错,不能纠错。CRC冗余校验可以纠错,缺点是数据较长,需要的校验位较多。

13.4 ARM中的UART电路构成

13.4.1ARM中的UART资源:

13.4.2ARM中UART内部结构;

公式:

13.5串口编程步骤

作业1:ARM的串行通信硬件电路---需要提交

作业2:熟读

作业3:解析串口发送的解析代码

作业4:找到波特率的计算公式

作业5:

posted @ 2022-10-22 15:20  L707  阅读(60)  评论(0编辑  收藏  举报