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: