第十一章 串口通信实验
11.1 实验目的通过本实验的学习,掌握STM32的串口使用,实现通过串口发送和接收数据。数据手册请参看第26章。
11.2 实验简介串口通讯(Serial Communication)是一种设备间很常用的串行通讯方式,串 口按位(bit)发送和接收字节,尽管比按字节(byte)的并行通信慢,但是串口 可以在使用一根线发送数据的同时用另一根线接收数据。大部分电子设备都支持 该通讯设备,作为计算机与单片机交互数据的主要接口,广泛用于各类仪器仪表、 工业检测以及自动控制领域。通信协议是需要通信的双方所达成的一种约定,它 对包括数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题作出统一规定,通信双方都必须共同遵守。
串口通讯我们一般分为物理层和协议层。物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准。
物理层:就是最底层的电平信号传输,大家熟知的RS232、RS485这些芯片,就是实现的物理层的电平转换,将单片机的TTL电平,转换成相应的接口电平。
星光的闪电F407开发板,板载了一个USB转串口芯片,将TTL信号转换成USB接口的差分信号,这也算是一种物理层芯片。
关于RS232和RS485,会在后面的实验中介绍介绍。
串口通信分为单工、半双工、全双工三种,取决于物理层的收发器芯片:
Ø 单工:只能由一方A传到另一方B。
Ø 半双工:可以双向传输,但不能同时存在。
Ø 全双工:可以同时存在双向传输。
协议层:串口传输一个字符的格式分为起始位、数据位、奇偶校验位、停止位和空闲位。
Ø 起始位:发出一个逻辑“0”信号,表示传输字符开始。
Ø 数据位:紧接在起始位之后,数据位的个数可以是5、6、7、8,一般采用8位,首先传送最低位。
Ø 奇偶校验位:奇偶校验是串口通信中的一种简单纠错方式,数据位加上这一位后,使得1的位数是偶数(偶校验)或奇数(奇校验)。
Ø 停止位:它是一个字符数据传输结束的标志。可以是1位、1.5位、2位的高电平。
Ø 空闲位:处于逻辑“1”状态,表示当前传输线路上没有数据。
11.3 电路设计星光闪电F407开发板板载一个USB串口,芯片采用CH340G,接口采用MINI USB接口,连接到STM32的USART1的PA9、PA10,电路如图11.3..1所示:
图11.3.1
11.4 软件设计打开光盘目录下的3、程序源码->1、基础实验->下的实验8 串口通信实验工程,打开左侧目录树BSP下的Usart.c文件,此为串口的驱动程序文件,工程目录如下图所示:
图11.4.1
打开Usart.c文件,代码如下:
11.5 下载验证用MINI USB线通过CN3的USB口连接电脑和开发板,拨动电源开关给开发板上电,D3电源指示灯点亮,连接好JLINK/ST-LINK下载调试器,打开“实验8 串口通信实验”工程代码,编译下载,打开串口调试助手,串口波特率115200,按一次KEY1按键发送一条信息,接收到一条信息会将接收到的内容回送回去。
此内容由EEWORLD论坛网友hejecu原创,如需转载或用于商业用途需征得作者同意并注明出处