STM32串口编程基础知识讲解

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
简介: STM32串口编程基础知识讲解

前言

本篇文章给大家介绍一下串口的基础编程知识,这些知识是属于串口的理论知识,在开始学习编写代码的时候必须要掌握这些基本的知识点。


一、串行通信和并行通信

串行通信和并行通信是两种不同的数据传输方式。

串行通信是指在一条单独的通信线路上,通过一个位一个位地传输数据,每个位依次传输,数据帧的每个位之间有一定的延时,数据被逐位发送或接收。串行通信一般使用较少的连接线路,但速度较慢,适合长距离的数据传输,例如串口通信、SPI、I2C等。

并行通信则是指同时在多条通信线路上传输多个位的数据,数据帧的每个位同时传输,数据可以一次性发送或接收。并行通信通常使用较多的线路,但传输速度比串行通信更快,适合短距离、高速数据传输,例如计算机内部的数据总线。

串行通信的优点:

可以通过较少的连接线路进行长距离的数据传输;

数据传输稳定,不容易出现干扰;

适用于低速数据传输,例如串口通信、SPI、I2C等通信协议。

串行通信的缺点:

传输速度较慢,无法满足高速数据传输的需求;

数据传输时间长,会影响实时性;

传输时资源利用率较低。

并行通信的优点:

可以通过多条连接线路同时传输多个位的数据,传输速度快,满足高速数据传输的需求;

数据传输时间短,有利于实时性要求高的应用场景;

传输时资源利用率较高。

并行通信的缺点:

需要较多的连接线路;

由于同步和干扰等问题,数据传输不够稳定;

适用于短距离的数据传输,扩展性差。

二、全双工,半双工,单工传输

全双工、半双工和单工是用于描述数据通信过程中的传输模式。这些模式在数据传输速度、带宽利用率、传输方向的选择和设备数量和成本等方面都有不同的限制和影响。

全双工传输模式:在全双工传输模式中,数据可以在通信双方之间同时传输,双方都可以发送和接收数据。当一方发送数据时,另一方同步地接收数据。全双工可以提供高速数据传输和高资源利用率。例如,电话和网络视频通信就使用了全双工模式。

半双工传输模式:在半双工传输模式中,通信双方在同一通信通道上交替地发送和接收数据。当一方发送数据时,另一方必须等待该数据发送完成后才能开始发送数据。这种传输模式适用于设备之间的低速短距离通信和碰撞避免的数据通信环境。例如,对讲机和传统的以太网通信就使用了半双工模式。

单工传输模式:在单工传输模式中,数据只能单向传输,只能由一方发送,而另一方只能接收数据。这种传输模式适用于数据流向单向的情况,例如无线电和广播通信。

三、同步通信和异步通信

同步通信和异步通信是用于描述设备之间数据传输时的两种基本通信模式,它们在通信数据的协同方式、数据传输速度、复杂度和适用范围等方面有很大区别。

同步通信:同步通信是指通信的发送和接收方需要在传输数据时,按照一个协议定时进行数据交换,以保证数据帧的同步传输。通信的双方通过同步信号进行协调,要求通讯双方的时钟频率和数据传输速率必须准确一致,以保证数据传输的正确性和精度。同步通信协议适用于高速数据传输,例如多媒体数据的传输、高速网卡以太网通信等。

异步通信:异步通信是指通信的双方不需要按照时间协议进行数据同步交换,通信的两方逐个数据的传输通过起始位、数据位、校验位和停止位的组合进行数据识别和帧同步,非常适用于短消息、电子邮件、串口通信等异步数据交换需求。数据在发送或接收后,无需确认后才能开始再次发送或接收数据。


四、波特率

波特率是指数据通信设备在数据传输中的数据传输速率,一般表示成以比特每秒(bps)为单位的数据的传输速度。

波特率是衡量通信速率的重要指标,通常和数据位数、停止位数、校验位等其他参数一起描述数据传输的特征。不同的波特率对应不同的进行数据传输时的时钟周期,不同的传输速率会对数据传输距离、数据精度和数据传输出错率等方面产生影响。如果发送方和接收方的波特率不一致,可能会导致数据传输错误。

在选择波特率时,需要考虑通信协议、数据长度、传输距离和时钟精度等多方面的因素。波特率的选择应该能够在充分保证数据传输准确性的同时,尽可能地提高数据传输的速率,以满足设备之间通信的要求。

常见的波特率有1200bps、2400bps、4800bps、9600bps、19200bps、38400bps等,在不同的应用场景和数据传输需求中选择合适的波特率,以达到最优的数据传输效果。

当把波特率设置为115200bps时,每秒可以传输的数据量是11520字节,计算步骤如下图:

总结

本篇文章讲解了串口的基本概念知识,大家在学习编写代码时将其掌握才能更好的理解代码。



相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
1月前
|
存储 缓存 芯片
STM32--USART串口
STM32--USART串口
|
1月前
|
Java C语言
STM32使用printf重定向到USART(串口)并打印数据到串口助手
STM32使用printf重定向到USART(串口)并打印数据到串口助手
35 0
|
6月前
|
存储 物联网 芯片
STM32速成笔记(十四)—串口IAP
本文介绍了什么是IAP,IAP有什么作用,如何实现IAP。最后,给出了IAP的实现程序。
115 0
STM32速成笔记(十四)—串口IAP
|
7月前
STM32F0单片机快速入门七 串口(UART)操作从轮询到中断
STM32F0单片机快速入门七 串口(UART)操作从轮询到中断
STM32F0单片机快速入门七 串口(UART)操作从轮询到中断
|
7月前
|
芯片
STM32F0单片机快速入门六 用库操作串口(UART)原来如此简单
STM32F0单片机快速入门六 用库操作串口(UART)原来如此简单
|
7月前
|
缓存 自然语言处理 网络协议
STM32CubeMX | | 使用小熊派串口驱动峰汇ETH-01以太网模块上传数据到OneNet
STM32CubeMX | | 使用小熊派串口驱动峰汇ETH-01以太网模块上传数据到OneNet
103 0
No.8 STM32F429IGT6 USART串口初始化结构体 总结
No.8 STM32F429IGT6 USART串口初始化结构体 总结
|
8月前
|
芯片 数据格式
No.7 STM32F429IGT6 USART串口通讯原理总结 (STM32F429/F767/H743)
No.7 STM32F429IGT6 USART串口通讯原理总结 (STM32F429/F767/H743)
|
2月前
|
C++ 芯片 编译器
STM32F103标准外设库—— 新建工程与库函数(四)
STM32F103标准外设库—— 新建工程与库函数(四)
44 0
STM32F103标准外设库—— 新建工程与库函数(四)