STM32串口通信实验.ppt
《STM32串口通信实验.ppt》由会员分享,可在线阅读,更多相关《STM32串口通信实验.ppt(39页珍藏版)》请在三一办公上搜索。
1、第二课串口通信,Company Logo,串口简介,串行接口简称串口,也成串行通信接口,是采用串行通信方式的扩展接口。串口的使用对于开发调试过程的作用是非常大的,串口可以用来查看、打印及输出相关信息,使我们在嵌入式开发中最先与中央处理器通信的接口。串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成,成本低但传送速度慢。串行通讯的距离可以从几米到几千米。,Company Logo,串口简介,串行通讯又分为异步通讯和同步通讯两种:同步串行是指ISP(interface Serial Peripheral)的缩写。ISP总线系统是一种同步串行外设接口,它可以使MCU与各种外围设
2、备以串行方式进行通信以交换信息,TRM450是ISP接口。异步串行是指UART(Universal Asynchronous Receiver/Trans mitter),通用异步接收/发送。UART是一个并行输入成为串行输出的芯片,通常集成在主板上。UART包含TTL电平的串口和RS232电平的串口。串行接口按电气标准及协议来分包括RS-232-C、RS-422、RS485等。RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。在单片机中,主要使用异步通讯方式。,Company Logo,串口简介,串口通信的概念非常简单,串口按位(bit)发
3、送和接收字节,尽管比按字节(byte)的并行通信慢,但是串口可以再使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配:1、波特率:这是一个衡量通信速度的参数,它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。,Company Logo,STM32串口简介,2、数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际数据不会是8位的,标准的值是5、7或8位(如何设置取决于你想传送的信息:比如标准的ASCII码是0127(7位),扩展的AS
4、CII码是0255(8位)。3、停止位:用于表示单个包的最后一位。典型的值为1、1.5和2位。优于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。,Company Logo,STM32串口简介,4、奇偶校验位:在串口通信中一种简单的检错方式。有4中检错方式:偶、奇、高和低。5、硬件流控制:硬件流控制常用的有RTS/CTS流控制盒DTR/DSR流控制。硬件流控制必须将相应的电缆线接上,用RTS/CTS流控制时,应将通讯两端的RTS、CTS线对应相连。常用的流控制信号还有DTR/D
5、SR。,Company Logo,STM32串口简介,STM32根据芯片型号的不同资源数量也不一样,103VC系列最多可提供5路串口(本次着重讲解串口1和串口2),有分数波特率发生器、支持同步单线通信和半双工单线通讯、支持LIN、支持调制解调器操作、智能卡协议和IrDA SIR ENDEC规范、具有 DMA等。STM32的串口与其他单片机的操作方式基本相同:1、开启串口时钟2、设置相应I/O模式3、配置波特率、数据位长度、奇偶校验位等,Company Logo,STM32串口原理图,Company Logo,STM32 UART库函数,Company Logo,STM32串口时钟使能,串口作为
6、STM32的一个外设,其时钟由外设时钟使能寄存器控制,串口1的时钟使能在APB2ENR寄存器,其他串口的时钟使能位都在APB1ENR。(以串口1为例)而用库函数则是:RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE),Company Logo,STM32串口复位,当外设出现异常的时候可以通过复位寄存器里面的对应位设置,实现该外设的复位,然后重新配置这个外设达到让其重新工作的目的。一般在系统刚开始配置外设的时候都会先执行复位该外设的操作。串口1的复位时通过配置APB2RSTR寄存器来实现的,其他的几个串口都是通过PAB1RSTR寄存器来实现的
7、。而用库函数则是使用USART_DeInit(USART_TypeDef*USARTx)来实现的。USART_ DeInit函数在stm32f10 x_usart.c文件中。,Company Logo,STM32串口波特率设置,STM32中每个串口都有一个自己独立的波特率寄存器USART_BRR,通过设置该寄存器达到配置不同波特率的目的,该寄存器的各位描述如下:该寄存器中最低4为用来存放小数部分的DIV_Fraction,15:4这12位用来存放整数部分DIV_Mantissa。高16位未使用(图片上小数整数有错误,以英文手册为准)。,Company Logo,STM32串口波特率设置,Com
8、pany Logo,STM32串口控制,STM32中每个串口都有3个控制寄存器USART_CR13,串口的很多配置都是通过这3个寄存器来设置的。这里我们只要用到USART_CR1就可以实现我们的功能了,其他的寄存器就不一一列出了。具体各位的功能及操作方法见STM32参考手册的496497页。其中发送和接收的中断都通过这个寄存器进行使能。,Company Logo,STM32串口数据的发送和接收,STM32串口的发送和接收是通过数据寄存器USART_DR来实现的,这是一个双寄存器,包含了发送和接收两部分。当向该寄存器写数据时,串口就会自动发送,当收到数据的时候,也在该寄存器中。其中只用了低9位,
9、其他位都保留且硬件强制为0。,Company Logo,STM32串口数据的发送和接收,STM32串口的发送和接收在库文件中分别有对应的函数,可直接调用,分别是:void USART_SendData(USART_TypeDef*USARTx,u8 Data)u8 USART_ReceiveData(USART_TypeDef*USARTx),Company Logo,STM32串口状态,STM32串口的状态可通过状态寄存器USART_SR读取。这里我们关注一下三个位,第5、6、7位RXNE、TC和TXE。,Company Logo,STM32串口,如果理解了以上寄存器等的讲解,那么就可以对S
10、TM32进行相关的设置和操作,就可以达到串口最基本的配置了,更详细的介绍可参考STM32参考手册。在很多串口操作中都可以直接调用printf函数打印输出信息,但是在STM32中还需要进行一些配置才可以。接下来我们首先会讲解如何使用printf函数进行输出,然后再讲解输入输出函数的使用方法。,Company Logo,STM32串口printf实现,本次试验采用UART1的查询方式实现:,Company Logo,STM32串口printf实现,本次试验中我们用到了GPIO、RCC、USART这三个外设的库文件stm32f10 x_gpio.c、stm32f10 x_rcc.c、stm32f10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STM32 串口 通信 实验

链接地址:https://www.31ppt.com/p-5449582.html