STM32串口通信基础知识科普_第1页
STM32串口通信基础知识科普_第2页
STM32串口通信基础知识科普_第3页
STM32串口通信基础知识科普_第4页
STM32串口通信基础知识科普_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

STM32串口通信基础知识科普STM32串口通信基础知识科普设备之间通信的方式一般情况下,设备之间的通信方式可以分成并行通信和串行通信两种。并行与串行通信的区别如下表所示。串行通信的分类1、按照数据传送方向,分为:单工:数据传输只支持数据在一个方向上传输;接收端和发送端,两者可以合并一起使用一个端口。全双工:允许数据同时在两个方向上传输。因此,全双工通信是两个单工通信方式的结合,需要独立的接收端和发送端。2、按照通信方式,分为:同步通信:带时钟同步信号传输。比如: SPI,IIC通信接口。异步通信:不带时钟同步信号。比如: UART(通用异步收发器),单总线在同步通讯中,收发设备上方会使用一根 信号线传输信号,在时钟信号的驱动下双方进行协调,同步数据。例如,通讯中通常双方会统一规定在时钟信号的上升沿或者下降沿对数据线进行采样。在异步通讯中不使用时钟信号进行数据同步,它们直接在数据信号中穿插一些用于同步的信号位,或者将主题数据进行打包,以数据帧的格式传输数据。通讯中还需要双方规约好数据的传输速率(也就是波特率)等,以便更好地同步。常用的波特率有4800bps、9600bps、115200bps等。在同步通讯中,数据信号所传输的内容绝大部分是有效数据,而异步通讯中会则会包含数据帧的各种标识符,所以同步通讯效率高,但是同步通讯双方的时钟允许误差小,稍稍时钟出错就可能导致数据错乱,异步通讯双方的时钟允许误差较大。常见的串行通信接口STM32串口通信基础STM32的串口通信接口有两种,分别是:UART(通用异步收发器)、USART(通用同步异步收发器)。而对于大容量STM32F10x系列芯片,分别有3USART和2UARTUART引脚连接方法RXD:数据输入引脚,数据接受;TXD:数据发送引脚,数据发送。对于两个芯片之间的连接,两个芯片GND共地,同时TXD和RXD交叉连接。这里的交叉连接的意思就是,芯片1的RxD连接芯片2的TXD,芯片2的RXD连接芯片1的TXD。这样,两个芯片之间就可以进行TTL电平通信了。STM32与51单片机串口通信相关实例,请移步此处:STM32与51单片机串口通信实例。若是芯片与PC机(或上位机)相连,除了共地之外,就不能这样直接交叉连接了。尽管PC机和芯片都有TXD和RXD引脚,但是通常PC机(或上位机)通常使用的都是RS232接口(通常为DB9封装),因此不能直接交叉连接。RS232接口是9针(或引脚),通常是TxD和RxD经过电平转换得到的。故,要想使得芯片与PC机的RS232接口直接通信,需要也将芯片的输入输出端口也电平转换成RS232类型,再交叉连接。经过电平转换后,芯片串口和 RS232的电平标准是不一样的单片机的电平标准(TTL电平):+5V表示1,0V表示0;RS232的电平标准:+15/+13V 表示0,-15/-13表示1。RS-232通讯协议标准串口的设备间通讯结构图如下:所以单片机串口与PC串口通信就应该遵循下面的连接方式:在单片机串口与上位机给出的 RS232口之间,通过电平转换电路(如下面图中的Max232芯片)实现TTL电平与RS232电平之间的转换。STM32与PC之间通信实例,请移步此处:STM32实例-用按键控制串口发送数据,文末附代码。RS232串口简介台式机电脑后面的9针接口就是com口(串口)在工业控制数据采集上应用广泛上图中,最右边的是串口接口统称为RS232接口,是常见的DB9封装。通信过程中只有两个脚参与通信。2脚:电脑的输入RXD3脚:电脑的输出TXD通过2,3脚就可以实现全双工(可同时收发)的串行异步通信5脚:接地单片机的P3口是有两个复用接口RXD和TXDTDXRDX上。注意:单片机RS232的电平标准是不一样的。单片机的电平标准TTL电平:+5V表示10V表示0。RS232的电平标准+15/+13V 表示1-15/-13 表示0。所以单片机与电脑串口通信就应该遵循下面的连接方式:在单片机与上位机给出的 RS232口之间通过电平转换电路(最上面图中的Max232芯片)实现TTL电平与RS232电平之间的转换,PC串口与单片机串口连接方式图:注意这两个DB9:DB91是在电脑上的DB92是在单片机实验板上焊接着的。这里的交叉连接的意思是 DB91的RXD连着DB92的TXD。DB92的RXD连着DB91的TXD这样交叉着连接,如果电脑没有RS232口只有USB口,可以用串口转接线转出串口,如下图所示。这个时候在电脑上位机上需要安装串口驱动程序。注意,这个驱动程序驱动的是 PL2303芯片(在上图的大头里面)使RS232信息转换成USB信息。下图为上图的内部结构:用串口通信比USB简单,因为串口通信没有协议,使用方便简单。STM32的UART特点全双工异步通信;分数波特率发生器系统,提供精确的波特率。发送和接受共用的可编程波特率,最高可达4.5Mbits/s;可编程的数据字长度(8位或者9位);可配置的停止位(支持 1或者2位停止位可配置的使用DMA多缓冲器通信;单独的发送器和接收器使能位;检测标志:①接受缓冲器②发送缓冲器空③传输结束标志;多个带标志的中断源,触发中断;其他:校验控制,四个错误检测标志。串口通信过程STM32中UART参数串口通讯的数据包由发送设备通过自身的 TXD接口传输到接收设备RXD接口,通讯双方的数据包格式要规约一致才能正常收发数据。STM32中串口异步通信需要定义的参数:起始位、数据位( 8位或者位)、奇偶校验位(第 9位)、停止位(1,15,2位)、波特率设置。UART串口通信的数据包以帧为单位,常用的帧结构为: 1位起始位位数据位+1位奇偶校验位(可选)+1位停止位。如下图所示:奇偶校验位分为奇校验和偶校验两种,是一种简单的数据误码校验方法。奇校验是指每帧数据中,包括数据位和奇偶校验位的全部 9个位中1的个必须为奇数;偶校验是指每帧数据中,包括数据位和奇偶校验位的全部 9个位中1的个数必须为偶数。校验方法除了奇校验(odd)、偶校验(even)之外,还可以有:0校验(space)、1校验(mark)以及无校验(noparity)。0/1校验:不管有效数据中的内容是什么,校验位总为 0或者1。UART(USART)框图这个框图分成上、中、下三个部分。本文大概地讲述一下各个部分的内容,具体的可以看《STM32中文参考手册》中的描述。框图的上部分,数据从 RX进入到接收移位寄存器,后进入到接收数据寄存器,最终供CPU或者DMA来进行读取;数据从 CPU或者DMA传过来,进入发送数据寄存器,后进入发送移位寄存器,最终通过 TX发送出去。然而,UART的发送和接收都需要波特率来进行控制的,波特率是怎样控制的呢?这就到了框图的下部分,在接收移位寄存器、发送移位寄存器都还有一个进入的箭头,分别连接到接收器控制、发送器控制。而这两

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论