【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

相关文章

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

Java进程CPU使用率过高排查步骤详细讲解

《Java进程CPU使用率过高排查步骤详细讲解》:本文主要介绍Java进程CPU使用率过高排查的相关资料,针对Java进程CPU使用率高的问题,我们可以遵循以下步骤进行排查和优化,文中通过代码介绍... 目录前言一、初步定位问题1.1 确认进程状态1.2 确定Java进程ID1.3 快速生成线程堆栈二、分析

javascript fetch 用法讲解

《javascriptfetch用法讲解》fetch是一个现代化的JavaScriptAPI,用于发送网络请求并获取资源,它是浏览器提供的全局方法,可以替代传统的XMLHttpRequest,这篇... 目录1. 基本语法1.1 语法1.2 示例:简单 GET 请求2. Response 对象3. 配置请求

Java Stream.reduce()方法操作实际案例讲解

《JavaStream.reduce()方法操作实际案例讲解》reduce是JavaStreamAPI中的一个核心操作,用于将流中的元素组合起来产生单个结果,:本文主要介绍JavaStream.... 目录一、reduce的基本概念1. 什么是reduce操作2. reduce方法的三种形式二、reduce

CSS引入方式和选择符的讲解和运用小结

《CSS引入方式和选择符的讲解和运用小结》CSS即层叠样式表,是一种用于描述网页文档(如HTML或XML)外观和格式的样式表语言,它主要用于将网页内容的呈现(外观)和结构(内容)分离,从而实现... 目录一、前言二、css 是什么三、CSS 引入方式1、行内样式2、内部样式表3、链入外部样式表四、CSS 选

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

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. 查询数据三、事务处