基于中断/DMA方式的串口通信

本文介绍了串口通讯协议、RS-232标准,探讨了USB/TTL转232模块的工作原理,以及基于HAL库中断和DMA方式的串口通信实现。重点讲解了CH340芯片在USB/TTL转232模块中的作用和DMA技术在优化系统性能中的角色。
摘要由CSDN通过智能技术生成

一、串口通讯协议和RS-232的介绍以及USB/TTL转232模块的工作原理

1、 串口协议和RS-232标准:

(1)串口协议:
串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单、便捷,因此大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通 讯方式输出调试信息。
在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片上外设;STM32标准库则是在寄存器与用户代码之间的软件层。对于通讯协议,我们也以分层的方式来理解,最基本的是把它分为物理层和协议层。
(2)RS-232 标准:
RS-232(Recommended Standard 232)是一种常用的串行通信标准,用于在计算机和外部设备之间进行数据传输。它定义了电气特性、信号传输方式和接口连接等方面的规范。

电气特性
RS-232标准规定了通信线路的电气特性,包括信号电平、波特率和时钟频率等。根据RS-232标准,信号电平分为正负两种,分别表示逻辑1和逻辑0。通常,正电平表示逻辑0,负电平表示逻辑1。波特率是指数据传输的速率,通常以每秒传输的位数(bps)表示。时钟频率则是指传输中使用的时钟信号频率。

信号传输方式
RS-232标准使用异步传输方式,即每个数据字节之间没有固定的时间间隔。数据传输以数据帧为单位,每个数据帧包括起始位、数据位、校验位和停止位。起始位用于标识数据帧的开始,停止位用于标识数据帧的结束。数据位用于传输实际的数据,校验位用于检测数据传输中的错误。

串口协议和RS-232标准:

串口协议:

串口通信是一种通过串行数据传输的方式进行的通信。它使用一对引脚(发送线TX和接收线RX)进行单向或双向的数据传输。
常见的串口协议包括UART(通用异步收发传输)和USART(通用同步异步收发传输),它们定义了数据传输的格式、速率、起始位、停止位等参数。
RS-232标准:

RS-232(Recommended Standard 232)是一种广泛用于串行通信的标准,定义了连接设备之间串行通信时的电气特性、信号极性、机械接口等。
RS-232标准规定了常见的串口参数,如波特率、数据位、停止位和奇偶校验等。
RS232电平与TTL电平的区别:

RS232电平通常采用负逻辑,即高电平表示逻辑0,低电平表示逻辑1。而TTL电平通常是正逻辑,高电平表示逻辑1,低电平表示逻辑0。
RS232电平的电压范围更大,一般为-15V至+15V,而TTL电平的电压范围通常在0V至5V。
RS232标准使用的连接器通常是DB-9或DB-25,而TTL通常使用的是0.1英寸间距的引脚。
"USB/TTL转232"模块(以CH340芯片模块为例)的工作原理:

CH340芯片:

CH340是一款USB转串口的芯片,常用于制作USB转TTL(UART)的模块,例如USB/TTL转232模块。
它提供了USB与串口之间的桥接功能,使得计算机可以通过USB接口与串口设备进行通信。
工作原理:

当连接USB/TTL转232模块到计算机的USB端口时,CH340芯片会被激活。
CH340通过USB接口与计算机通信,驱动程序将其识别为一个虚拟串口设备。
用户通过计算机的串口终端或软件向虚拟串口发送数据,CH340芯片将数据转换为串口信号并通过TTL电平输出到模块的TX引脚。
接收方向上,CH340芯片接收TTL电平的串口信号,将其转换为USB可识别的信号,通过USB接口发送到计算机。
这种模块的优势在于方便连接串口设备到计算机,而不需要计算机具备物理串口。它常用于与嵌入式系统、单片机等设备进行调试和通信。用户可以通过USB/TTL转232模块在计算机上模拟一个串口,使得与串口设备的通信变得更加简便。

DMA简介

DMA,即直接内存访问(Direct Memory Access),是一种计算机系统中的数据传输技术,旨在提高数据传输的效率和性能。DMA允许外设(如硬盘驱动器、网络适配器、图形卡等)直接访问系统内存,而不需要通过中央处理器(CPU)的干预,从而减轻CPU的负担。

二.基于HAL库中断方式进行串口通信

创建工程
在这里插入图片描述配置GPIO:PA0。如果仅仅是完成串口通信的话,这一步可以跳过。但是根据实验要求,为了区分串口通信的开启与关闭,要使用一个LED灯来显示。
在这里插入图片描述配置USART1
在这里插入图片描述生成keil代码即可,代码如下所示


#include "main.h"
#include "dma.h"
#include "usart.h"
#include "gpio.h"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值