《嵌入式技术入门与实战(基于STM32)》 课件 5-会用STM32的串口通信_第1页
《嵌入式技术入门与实战(基于STM32)》 课件 5-会用STM32的串口通信_第2页
《嵌入式技术入门与实战(基于STM32)》 课件 5-会用STM32的串口通信_第3页
《嵌入式技术入门与实战(基于STM32)》 课件 5-会用STM32的串口通信_第4页
《嵌入式技术入门与实战(基于STM32)》 课件 5-会用STM32的串口通信_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

第5章会用STM32的串口通信《嵌入式技术入门与实战(基于STM32)》使用PC机的串口调试助手显示和发送数据,用户通过PC端串口调试助手发送指定命令的信息后,微控制器按照指定命令控制LED灯状态变化,并将接收的数据再次传输至PC的串口助手显示。串口通信应用实例串口调试助手第5章会用STM32的串口通信01串行通信基础知识02STM32的USART串口通信原理03GPIO的复用功能04串口通信应用实例分析1、串行通信基础知识通信接口通常有两种:(1)并行通信(2)串行通信1、串口通信基础知识串行通信与并行通信的比较串行通信按照数据传送方向分为:(1)单工通信(2)半双工通信(3)全双工通信串行通信的分类串行通信按照按照串行数据的时钟控制方式分为(1)异步通信发送方和接收方之间没有统一的时钟信号数据通常以字符为单位组成字符帧传送(1个字节)(2)同步通信通信双方按照统一节拍工作。一次通信传输一帧信息,一帧通常由若干个数据字符组成(n个字节)0起始位D0D18D2位D3D4D5D6D70/1奇偶校验1停止位0D0D1D2D3D4D5D6串行通信的分类2、STM32的USART串口通信原理STM32串行通信方式有两种:同步通信,带时钟同步信号传输,如:SPI,I2C通信接口;异步通信,是不带时钟同步信号。如:UART、单总线STM32串行通信方式STM32串行通信方式USART即通用同步异步收发器,主要功能:USART利用分数波特率发生器提供宽范围的波特率选择。支持同步单向通信和半双工单线通信支持异步全双工通信支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIRENDEC规范,以及调制解调器(CTS/RTS)操作。允许多处理器通信使用多缓冲器配置的DMA方式,可以实现高速数据通信。STM32的USART简介波特率的控制部分收发控制部分数据存储转移部分USART的内部结构任何USART双向通信至少需要两个脚:RX:接收数据输入引脚,就是串行数据输入引脚。过采样技术可区分有效输入数据和噪声,从而用于恢复数据。TX:发送数据输出引脚。如果关闭发送器,该输出引脚模式由其I/O端口配置决定。如果使能了发送器但没有待发送的数据,则TX引脚处于高电平。在单线和智能卡模式下,该I/O引脚用于发送和接收数据。USART的引脚波特率:即每秒传输的二进制位数,用b/s(bps)表示,通过对时钟的控制可以改变波特率。向波特比率寄存器USART_BRR写入参数,修改了串口时钟fPCLKx的分频值USARTDIVUSART的内部结构1:波特率的控制串口的时钟源经过USARTDIV分频后分别输出作为发送器时钟及接收器时钟,控制发送和接收的时序。USARTDIV=DIV_Mantissa+(DIVFraction/16)波特比率寄存器USART_BRR的格式USART_BRR寄存器包括两部分,分别是DIV_Mantissa(USARTDIV的整数部分)和DIVFraction(USARTDIV的小数)部分,最终,计算公式为:fPCLKx(x=1、2)是给外设的时钟,以STM32F407为例:USART1、USART6使用PCLK2(APB2总线时钟,最高168MHz)USART2、USART3使用PCLK1(APB1总线时钟,最高42MHz)USART的时钟频率fPCLKxAPB284MHzAPB142MHz如何从USART_BRR寄存器值得到USARTDIV?例1:如果DIV_Mantissa=27d,DIV_Fraction=12d(USART_BRR=1BCh),于是:Mantissa(USARTDIV)=27dFraction(USARTDIV)=12/16=0.75d所以:USARTDIV=27.75d例2:要求USARTDIV=25.62d,就有:DIV_Fraction=16*0.62d=9.92d,近似等于10d=0x0ADIV_Mantissa=mantissa(25.620d)=25d=0x19于是,USART_BRR=0x19A异步通信必须将接收方和发送方必须设置成相同波特率才能正常通信。更新波特率寄存器USART_BRR后,波特率计数器中的值也立刻随之更新。所以在通信进行时不应改变USART_BRR中的值围绕着发送器和接收器控制部分,有好多个寄存器,通过向寄存器写入各种控制参数,来控制发送和接收;USART的内部结构2:收发控制串口状态寄存器SR串口的状态可以通过状态寄存器USART_SR读取。RXNE(读数据寄存器非空),当该位被置1的时候,就是提示已经有数据被接收到了,并且可以读出来了。这时候我们要做的就是尽快去读取USART_DR,通过读USART_DR可以将该位清零,也可以向该位写0,直接清除。TC(发送完成),当该位被置位的时候,表示USART_DR内的数据已经被发送完成了。如果设置了这个位的中断,则会产生中断。该位也有两种清零方式:1)读USART_SR,写USART_DR。2)直接向该位写0。数据发送过程数据接收过程USART的内部结构3:数据存储转移串口异步通信协议

STM32中串口异步通信定义的数据有:起始位、数据位(8位或者9位)、奇偶校验位(第9位)和停止位(1位,0.5位,2位,1.5位)。思考与练习◎串口传输数据的快慢是由哪个参数决定的,其在STM32F407的USART内部又是如何配置的?◎如果有两个MCU需要通过各自的串口连接进行通信,请问相关引脚如何连接?3、GPIO的复用功能复用功能(AF)的概念把一端口配置成复用输出功能,将使引脚和片上外设(比如:USART)的输入/输出信号连接。对于每个I/O而言,应用程序一次只能为其选择一个可用的外设功能,由复用功能输入和复用功能输出共用。在每个GPIO引脚上复用了哪些功能,可查看芯片数据手册。复用模式下的引脚内部结构复用输入模式禁止弱上拉/下拉电阻;施密特触发输入被激活,引脚与输入数据寄存器断开,直接映射到片上外设;复用输出模式引脚与输出数据寄存器断开,输出信号来自片上外设,输出缓冲器被打开,可分为复用推挽输出和复用开漏输出STM3F407各串口的复用引脚串口RXTXUSART1PA10(PB7)PA9(PB6)USART2PA3(PD6)PA2(PD5)USART3PB11(PC11/PD9)PB10(PC10/PD8)UART4PC11(PA1)PC10(PAO)UART5PD2PC12USART6PC7(PG9)PC6(PG14)重映射引脚4、串口通信应用实例分析芯片:STM32F407ZGT6实验板:正点原子探索开发套件实验板的串口1(USART1)通过USB线连接到PC的USB口28硬件平台条件实验板串口硬件设计实验板usb接口CH340是一个USB总线的转接芯片,实现USB转串口、USB转IrDA红外或者USB转打印口。USB转串口芯片CH340HAL_UART_Transmit();串口阻塞式发送数据函数,使用超时管理机制HAL_UART_Receive();串口阻塞式接收数据函数,使用超时管理机制HAL_UART_Transmit_IT();串口中断模式发送函数HAL_UART_Receive_IT();串口中断模式接收函数HAL_UART_Transmit_DMA();串口DMA模式发送函数HAL_UART_Receive_DMA();串口DMA模式接收函数发送一般不需要中断即可完成发送,接收一般需要使用中断来接收。软件设计:串口发送与接收HAL库函数串口配置的一般步骤STEP2STEP3STEP1串口参数初始化:设置波特率,字长,奇偶校验等参数。编写中断处理函数开启中断并且初始化NVIC,使能中断(如果需要开启中断才需要这个步骤)。STEP1:串口参数初始化串口使能和关闭初始化函数HAL_UART_Init内部会调用串口使能函数使能相应串口,因此用户无需重复使能,中断使能和去使能HAL库函数为:__HAL_UART_ENABLE(handler);//使能句柄handler指定的串口__HAL_UART_DISABLE(handler);//关闭句柄handler指定的串口初始化函数HAL_UART_Init内部还调用MSP初始化回调函数HAL_UART_MspInit进行MCU相关的初始化,本任务中,该函数用于对串口复用的引脚PA9、PA10复用模式进行定义和中断优先级设置开启中断和关闭中断__HAL_UART_ENABLE_IT(huart,UART_IT_TXE);//开启发送数据非空中断__HAL_UART_DISABLE_IT(huart,UART_IT_TC);//关闭发送数据非空中断__HAL_UART_ENABLE_IT(huart,UART_IT_RXNE);//开启接收完成中断__HAL_UART_DISABLE_IT(huart,UART_IT_RXNE);//关闭接收

温馨提示

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

评论

0/150

提交评论