【STC8A8K64S4A12开发板】— 单片机串行口知识点讲解

本文主要是介绍【STC8A8K64S4A12开发板】— 单片机串行口知识点讲解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

版权声明:本文为博主原创文章,转载请附上原文出处链接。

文章目录

  • 前言
  • 一、关于通讯和通信的区别
  • 二、关于串行通信和串口通信的区别
  • 三、关于串行通信和并行通信的区别
  • 四、关于单工通信、半双工通信和全双工通信
  • 五、关于同步通信和异步通信
  • 六、关于同步通信和异步通信的比
  • 七、几种常见电平信号的区别
  • 八、单片机串行口介绍
  • 九、关于串口流控的介绍
  • 十、关于单片机串行口的引脚
  • 十一、关于单片机串行口的应用
  • 十二、单片机串行口的应用
  • 总结


前言

本次讲解STC8A8K64S4A12系列单片机串行口知识点。


一、关于通讯和通信的区别

目前,这两个词的使用频率相当高,但词义范围尚没有明确统一的界定。

关于通讯:“通讯”传统意义上主要指电话、电报、电传。通讯的“讯”指消息(Message),媒体讯息通过通讯网络从一端传递到另一端。媒体讯息的内容主要是话音、文字、图片和视频图像。其网络的构成主要由电子设备系统和无线电系统构成,传输和处理的信号是模拟的。所以,“通讯”一词应特指采用电报、电话等媒体传输系统实现上述媒体信息传输的过程。

关于通信:“通信”仅指数据通信,即通过计算机网络系统和数据通信系统实现数据的端到端传输。通信的“信”指信息(Information),信息的载体是二进制的数据,是数字的。数据则是可以用来表达传统媒体形式的信息,如声音、图像、动画等。

由于旧的“通讯”系统早已实现了数字化、计算机网络化改造,因此可以认为目前的数据通信系统已涵盖了过去的“通讯”系统的功能。按照这个结论,目前应多使用“通信”一词表达互联网间与局域网内的数据传输,尽量少用或不用“通讯”一词,以免引起概念上的误解。

在这里插入图片描述

二、关于串行通信和串口通信的区别

通常我们会在各种文档描述中看到串行通信和串口通信的术语,虽然只有一字之差,但表示的含义却差别很大。

串行通信:

  • 串行通信的含义:串行通信是一种概念,是相对并行通信而言的。串行通信指一比特一比特的收发数据,而并行通信可一次性收发多个比特的数据。
  • 常见串行通信:UART,I2C,SPI等等。

串口通信:

  • 串口通信的含义:串口通信是一种通信手段,是相对于以太网方式、红外方式、蓝牙方式等而言的。
  • 常见串口通信:某种意义上而言,串口通信指的就是单片机或者说微处理器的UART串行口通信。

三、关于串行通信和并行通信的区别

串行通信和并行通信的概念:

  • 串行通信:使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。
  • 并行通信:如果一组数据的各数据位在多条线上同时被传输,这种传输方式称为并行通信。

串行通信和并行通信优缺点对比:

  • 传输速率:并行通信传输速率比串行通信传输速率快得多。
  • 通信距离:并行通信不支持远距离通信,串行通信可支持远距离通信。
  • 抗干扰性:串行通信抗干扰性比并行通信强,稳定性高。
  • 通信成本:串口通信成本低,并行通信成本高。

下面给出串行通信和并行通信的示意图:

在这里插入图片描述

☆注:串行通信是先发送一个字节的低位,再发送一个字节的高位。

四、关于单工通信、半双工通信和全双工通信

单工通信:

  • 概念:只支持信号在一个方向上传输(正向或反向),任何时候不能改变信号的传输方向。
  • 举例:寻呼机。

半双工通信:

  • 概念:允许信号在两个方向上传输,但某一时刻只允许信号在一个信道上单向传输。
  • 举例:无线对讲机。

全双工通信:

  • 概念:允许数据同时在两个方向上传输,即有两个信道,因此允许同时进行双向传输。
  • 举例:电话机、手机。

在这里插入图片描述

五、关于同步通信和异步通信

同步通信:

  • 概念:同步通信是一种比特同步通信技术,要求发收双方具有同频同相的同步时钟信号,只需在传送报文的最前面附加特定的同步字符,使发收双方建立同步,此后便在同步时钟的控制下逐位发送/接收。
  • 同步通信示意图如下。

在这里插入图片描述

异步通信:

  • 概念:异步通信是一种很常用的通信方式。相对于同步通信,异步通信在发送字符时,所发送的字符之间的时隙可以是任意的,当然,接收端必须时刻做好接收的准备。发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。
  • 异步通信示意图如下。

在这里插入图片描述

六、关于同步通信和异步通信的比

对比同步通信和异步通信:

  • 同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;异步通信不要求接收端时钟和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔再发送下一个字节。
  • 同步通信的单位是帧,异步通信的单位是字符。
  • 同步通信效率高,异步通信效率较低。
  • 同步通信较复杂,通信的双方必须使用同一时钟;异步通信简单,双方时钟可允许一定误差。
  • 同步通信可用于点对多点,异步通信只适用于点对点。

七、几种常见电平信号的区别

有几种电平信号大家常常听说,比如TTL电平、RS232电平和RS485电平等。下面介绍下三种电平之间的区别。

  • 三种电平信号都是基于数字信号而言的,数字信号要么是逻辑“1”,要么是逻辑“0”。在表示逻辑“1”或逻辑“0”时会对应不同的电平值,而使用的是TTL电平、RS232电平还是RS485电平正是决定了这个不同的电平值。
  • TTL( Transistor-Transistor Logic )电平信号:应用最广泛的电平信号,
    高电平等价于逻辑“1”,低电平等价于逻辑“0”。一般规定输出高电平范围2.4V5V,输出低电平0V0.4V。
  • RS232电平信号:低电平等价于逻辑“1”,高电平等价于逻辑“0”。一般规定输出高电平范围+3V+15V,输出低电平-15V-3V。
  • RS485电平信号:低电平等价于逻辑“1”,高电平等价于逻辑“0”。一般规定输出高电平范围+2V+6V,输出低电平-6V-2V 。

在这里插入图片描述

八、单片机串行口介绍

单片机串行口:串行口是单片机的最基本外设之一,不同型号单片机所带串行口并不一致,比如多数51单片机所带串行口是UART,没有USART。STM32所带串行口有UART,也有USART。具体根据所选单片机型号而定。

下面介绍UART和USART的概念。

  • UART(全称是Universal Asynchronous Receiver and Transmitter) :通用异步收发器。
  • USART(全称是Universal Synchronous Asynchronous Receiver and Transmitter):通用同步异步收发器。

USART和UART的区别:

  • UART只能用于异步串行通信, USART既可以用于同步串行通信,也能用于异步串行通信。
  • 当USART用于异步串行通信时,和UART 没有区别。

九、关于串口流控的介绍

串口流控:提供了由于某种原因不能进行通信时阻塞通信的一种机制。

串口流控分类:实现串口流控可采用硬件流控和软件流控两种方式。

  • 硬件流控:使用串行电缆控制线上的电压信号来控制数据的发送和接收。硬件流控有两种方式:DTR/DSR方式和RTS/CTS方式。
  • 软件流控:使用数据流中的两个特殊的字符,XOFF和XON,来控制数据的接收和发送。

注意事项:

  • 软件流控一般是在串行口没有硬件流控的条件下而使用的。换句话说,如果串口有硬件流控,是不会使用软件流控的。
  • 一般单片机串行口如果有硬件流控引脚的话,常见的配置是除了有串行口必要的RXD和TXD引脚外,还有RTS和CTS 两个信号引脚。

十、关于单片机串行口的引脚

单片机通常会有多组串行口可供使用,而针对一组串行口可能会因其是否有硬件流控、是否有同步功能而有不同的引脚数:

  1. 不带硬件流控的UART接口。
序号引脚名功能描述
1UART_RX串口接收
2UART_TX串口发送
  1. 不带硬件流控的USART接口。
序号引脚名功能描述
1USUART_RX串口接收
2USUART_TX串口发送
3USUART_CK串口同步时钟线

☆注:带硬件流控单片机串行口USART会有上面5个引脚,实际使用时如果用不到串口流控,可将USART_RTS和USART_CTS作为普通IO口使用。如果不用串口同步通信,可将USART_CK作为普通IO口使用。换句话说,该USART串行口可只使用USART_RX和USART_TX两个引脚进行串口异步通信。

  1. 带硬件流控的UART接口。
序号引脚名功能描述
1USUART_RX串口接收
2USUART_TX串口发送
3USUART_RTS串口硬件流控RTS
4USUART_CTS串口硬件流控CTS

☆注:带硬件流控单片机串行口UART会有上面4个引脚,实际使用时如果用不到串口流控,可只使用UART_RX和UART_TX两个引脚。此时,UART_RTS和UART_CTS可作为普通IO口使用。

  1. 带硬件流控的USART接口。
序号引脚名功能描述
1USUART_RX串口接收
2USUART_TX串口发送
3USUART_CK串口同步时钟线
4USUART_RTS串口硬件流控RTS
5USUART_CTS串口硬件流控CTS

☆注:带硬件流控单片机串行口USART会有上面5个引脚,实际使用时如果用不到串口流控,可将USART_RTS和USART_CTS作为普通IO口使用。如果不用串口同步通信,可将USART_CK作为普通IO口使用。换句话说,该USART串行口可只使用USART_RX和USART_TX两个引脚进行串口异步通信。

十一、关于单片机串行口的应用

串行口的常见应用:

  • 单片机串行口外接RS232芯片(MAX232/SP3232等)可扩展为RS232接口。
  • 单片机串行口外接RS485芯片(MAX485/SP485等) 可扩展为RS485接口。
  • 单片机串行口外接USB转串口芯片(CH340等)可扩展为USB接口。
  • 单片机串行口外接TTL电平的相应功能模块则就具有了模块的功能,如HC-08蓝牙串口模块则单片机可实现蓝牙BLE通信,如外接WiFi模块ESP8266则单片机可实现无线WiFi通信,如外接PM2.5的模块,则单片机可实现对环境PM2.5的采集。
  • 以上是单片机串行口的最常见应用,基础而实用,大家务必学好单片机串行口的硬件和软件设计。

十二、单片机串行口的应用

在这里插入图片描述

总结

以上就是今天要讲的内容!

这篇关于【STC8A8K64S4A12开发板】— 单片机串行口知识点讲解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/288625

相关文章

C++ vector的常见用法超详细讲解

《C++vector的常见用法超详细讲解》:本文主要介绍C++vector的常见用法,包括C++中vector容器的定义、初始化方法、访问元素、常用函数及其时间复杂度,通过代码介绍的非常详细,... 目录1、vector的定义2、vector常用初始化方法1、使编程用花括号直接赋值2、使用圆括号赋值3、ve

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

C++快速排序超详细讲解

《C++快速排序超详细讲解》快速排序是一种高效的排序算法,通过分治法将数组划分为两部分,递归排序,直到整个数组有序,通过代码解析和示例,详细解释了快速排序的工作原理和实现过程,需要的朋友可以参考下... 目录一、快速排序原理二、快速排序标准代码三、代码解析四、使用while循环的快速排序1.代码代码1.由快

QT移植到RK3568开发板的方法步骤

《QT移植到RK3568开发板的方法步骤》本文主要介绍了QT移植到RK3568开发板的方法步骤,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录前言一、获取SDK1. 安装依赖2. 获取SDK资源包3. SDK工程目录介绍4. 获取补丁包二

前端知识点之Javascript选择输入框confirm用法

《前端知识点之Javascript选择输入框confirm用法》:本文主要介绍JavaScript中的confirm方法的基本用法、功能特点、注意事项及常见用途,文中通过代码介绍的非常详细,对大家... 目录1. 基本用法2. 功能特点①阻塞行为:confirm 对话框会阻塞脚本的执行,直到用户作出选择。②

Java集合中的List超详细讲解

《Java集合中的List超详细讲解》本文详细介绍了Java集合框架中的List接口,包括其在集合中的位置、继承体系、常用操作和代码示例,以及不同实现类(如ArrayList、LinkedList和V... 目录一,List的继承体系二,List的常用操作及代码示例1,创建List实例2,增加元素3,访问元

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详