轻松玩转STM32微控制器讲义 - 第4节-串口实验
- 格式:pptx
- 大小:1.21 MB
- 文档页数:48


STM32-串⼝配置与使⽤1、通讯基础串⾏通讯与并⾏通讯串⾏通信设备之间通过少量数据信号线(⼀般是 8 根以下),地线以及控制信号线,按数据位形式⼀位⼀位地传输数据。
同⼀时刻只能传输⼀个数据位的数据并⾏通讯使⽤ 8、16、32 及 64 根或更多的数据线进⾏传输的通讯⽅式可同时传输多个数据位的数据全双⼯、半双⼯及单⼯通讯全双⼯在同⼀时刻,两个设备之间可以同时收发数据半双⼯两个设备之间可以收发数据,但不能在同⼀时刻进⾏单⼯在任何时刻都只能进⾏⼀个⽅向的通讯,即⼀个固定为发送设备,另⼀个固定为接收设备同步通讯、异步通讯同步通讯收发设备双⽅使⽤⼀根信号线表⽰时钟信号,在时钟信号的驱动下双⽅进⾏协调,同步数据通讯中通常双⽅会统⼀规定在时钟信号的上升沿或下降沿对数据线进⾏采样异步通讯不使⽤时钟信号进⾏数据同步,直接在数据信号中穿插⼀些同步⽤的信号位,或者把主体数据进⾏打包,以数据帧的格式传输数据某些通讯中需要双⽅约定数据的传输速率,以便更好地同步通讯速率⽐特率(Bitrate)每秒传输的⼆进制位数,单位bis/s波特率(Baudrate)每秒钟传输的码元通讯中常⽤时间间隔相同的符号来表⽰⼀个⼆进制数字,这样的信号称为码元常见波特率4800,9600,1152002、USART串⼝通讯协议层起始和停⽌信号串⼝通讯的⼀个数据包从起始信号开始,直到停⽌信号结束。
数据包的起始信号由⼀个逻辑 0 的数据位表⽰,⽽数据包的停⽌信号可由 0.5、1、1.5 或 2 个逻辑 1 的数据位表⽰,只要双⽅约定⼀致即可。
有效数据在数据包的起始位之后紧接着的就是要传输的主体数据内容,也称为有效数据,有效数据的长度常被约定为 5、6、7 或 8 位长数据校验在有效数据之后,有⼀个可选的数据校验位。
由于数据通信相对更容易受到外部⼲扰导致传输数据出现偏差,可以在传输过程加上校验位来解决这个问题。
校验⽅法有奇校验 (odd)、偶校验(even)、0 校验(space)、1 校验(mark)以及⽆校验(noparity)。
串口实验1 实验目的(1) 理解串口的工作原理;(2) 学会STM32通过串口和计算机通信。
2 实验任务(1) 调用usart.c文件中相关函数及变量;(2) 通过计算机串口软件发送LED灯闪烁时间间隔实现串口对LED灯频率的控制。
3 实验说明STM32串口简介串口是MCU的重要外部接口,同时也是软件开发重要的调试手段。
现在基本上所有的MCU都会带有串口,STM32自然也不例外。
本实验将主要从库函数操作层面结合寄存器的描述,介绍如何设置串口,以达到最基本的通信功能,并且介绍如何通过USB串口和电脑通信。
串口设置的一般步骤可以总结为如下几个步骤:1) 串口时钟使能,GPIO时钟使能2) 串口复位3)GPIO端口模式设置4) 串口参数初始化6) 使能串口7) 编写中断处理函数与串口基本配置直接相关的几个固件库函数和定义主要分布在stm32f10x_usart.h和stm32f10x_usart.c文件中。
关于串口更详细的介绍,请参考《STM32 参考手册》第516页至548页,通用同步异步收发器一章。
4 预习要求(1) 串口参数包括哪些?分别有什么作用?(2) 复用功能下的串口GPIO模式有哪些?该如何配置?4实验步骤(1) 实训平台上PA9和PA10已经与TXD、RXD连接,串口硬件配置完成;(2) 将LED端口与对应IO口用导线连接;(3) 用数据线将串口与电脑的USB接口连接;(4) 复制上一个实验工程修改名称并保存为USART实验,并将工程文件名称修改为USART. uvprojx;(5) 编写main()函数,程序编译成功后下载程序到实训平台;(6) 打开串口调试助手XCOM V2.0,改变延时时间观察LED灯的变化。
硬件设计图6.1 PE5连接LED软件设计(1) 查看usart.c的代码。
在SYSTEM文件下双击usart.c,如图6.2所示。
图6.2 uart_init()函数图6.3 USART1_IRQHandler()函数对于NVIC中断优先级管理,参考STM32F1开发指南4.5中断优先级管理。
1.回顾2016年11月10日11-55-25 串口通信1.回顾按键:输入 -- 看原理图。
驱动编写(看数据手册 -- 相关寄存器应用 -- 按键控制设备 -- 消抖 -- 先编码 -- 再解码状态机 -- 把一个事件分为几个状态,每个状态并行。
switch -- case语句。
2.通信2.1 通信的分类并行通信和串行通信:串行通信:传输距离远,传输速度较慢。
以太网、USB、SPI IIC等(设备与设备芯片与芯片并行通信:近距离传输,传输速度快。
MCU与内存 flash2.2 通信的方式单工通信:只能发送或则接收(通信设备 -- 收音机半双工通信:同一时刻,只能发送,或则只能接收 -- 对讲机全双工通信:同一时刻,既能发送又能接收。
-- 手机2.3 串行通信 -- UART的介绍(串口SPI IIC 串口 CAN 485 SDIO等串口 -- UART -- 串行异步全双工通信接口 -- mcu(都支持串口电脑:COM口作用:1.两个设备通信2.下载(ISP3.串口3.1 物理接口 -- 常用设备的连接TxD -- 数据发送管脚RxD -- 数据接收管脚GND - 共地常用的连接方式:交叉线:Rx Tx -- 交换直连线:不交换3.2 位协议 -- 通信工程师最小单位:位 -- 232协议开始位数据位奇偶校验位停止位位数 1 5~8 1 1~2电平 0 1/0 1/0 11.总线空闲态:数据线为高电平。
2.开始位:0 -- 低电平 (空闲态检测到下降沿3.数据位:5~8 (7/8 -- ASCII码(8位 -- 字节(8位4.奇偶校验位:判断数据位中1+奇偶校验位中的1必须为奇数/偶数。
奇校验:数据位中1+奇偶校验位中的1必须为奇数偶校验:数据位中1+奇偶校验位中的1必须为偶数5.停止位:1 -- 高电平常用的协议格式:1 + 8 + 0 + 1 = 10位。
传输clk -- 波特率:每秒钟发送的位数。
stm32串口通信实验原理STM32是一款由STMicroelectronics公司推出的基于ARM Cortex-M 内核的32位微控制器。
在STM32系列中,串口通信是一种常见的外设模块,可以实现与其他设备之间的数据传输。
本文将介绍STM32串口通信的原理及实验方法。
一、串口通信的原理串口通信是一种通过串行方式传输数据的通信方式。
在串口通信中,数据是一位一位地依次发送或接收的。
与并行通信相比,串口通信只需要两根信号线即可实现数据的传输,因此在资源有限的嵌入式系统中被广泛应用。
STM32的串口通信模块包括多个寄存器,其中包括控制寄存器、状态寄存器、数据寄存器等。
通过配置这些寄存器,可以实现串口通信的参数设置和数据的发送接收。
二、STM32串口通信的实验步骤以下是一种基本的STM32串口通信实验步骤:1. 硬件连接:将STM32开发板的串口引脚与其他设备的串口引脚通过串口线连接起来。
一般来说,串口通信需要连接的引脚包括TX (发送引脚)、RX(接收引脚)、GND(地线)。
2. 引脚配置:通过STM32的引脚复用功能,将相应的GPIO引脚配置为串口功能。
具体的引脚配置方法可以参考STM32的开发板手册或者相关的资料。
3. 时钟配置:配置STM32的时钟源,使得串口通信模块能够正常工作。
一般来说,串口通信模块使用的时钟源可以选择系统时钟或者外部时钟。
4. 串口配置:配置串口通信模块的参数,包括波特率、数据位、停止位、校验位等。
这些参数的配置需要根据实际的通信需求来确定。
5. 数据发送:通过向数据寄存器写入数据,向其他设备发送数据。
在发送数据之前,需要通过状态寄存器的标志位判断串口是否空闲,以确保数据能够正常发送。
6. 数据接收:通过读取数据寄存器的数据,从其他设备接收数据。
在接收数据之前,需要通过状态寄存器的标志位判断是否有数据到达,以确保数据能够正确接收。
7. 中断处理:在串口通信过程中,可以使用中断来实现数据的异步传输。