嵌入式课程 之 中断和串口通信实验

版权归如下公司,禁止非授权转载:

  • 北京西普阳光教育科技股份有限公司(https://www.simpleware.com.cn)
  • 维周机器人科技有限公司(http://www.vejoe.com)


【实验目的】

掌握USART接口的基本的和主要指标。
掌握USART接口的编程原理和使用方法。

【实验原理】

STM32的串口非常强大,它不仅支持最基本的通用串口同步、异步通讯,还具有LIN总线功能(局域互联网)、IRDA 功能(红外通讯)、SmartCard功能。

一、USART接口简介

本实验使用的为串口中最基本、最常用的全双工、异步通讯方式,其寄存器说明如表1所示。要配置串口通讯,至少要设置以下几个参数:字长(一次传送的数据长度)、波特率(每秒传输的数据位数)、奇偶校验位、还有停止位。在初始化串口的时候,必然有一个串口初始化结构体,这个结构体的几个成员肯定就是存储这些控制参数的。
在这里插入图片描述
表1 USART相关寄存器

二、串口通信分类及原理

串口通讯分为并行通信和串行通信。并行通信是通过多条数据线来传输数据,所以传输的速度比较快,缺点是不利于长距离传输,串行通信指将数据字节分成位的形式,在一条线上来传输,相比并行通信可以大幅减少成本,但是控制难度较大,串行通信根据传输方向分为单工、半双工和全双工,根据时钟的特性又可以分为同步通信和异步通信。

一般使用异步通信较多,异步通信的原理是将数据以帧的形式传输,每帧间有固定的传输时间间隔,通信中的波特率、数据位、停止位和奇偶校验的参数设置很关键,必须使两个端口的参数匹配后才可以通信。

串行通信中的波特率和比特率:波特率指数据信号对载波的调制速率,波特率的单位是波特(baud),比特率指单位时间内传输的比特数,单位bit/s(bps),而对于USART来说,波特率和比特率是相等的。总之,波特率越大传输速率越快,通过控制时钟可以改变波特率。

数据位是传输数据的部分,停止位都在一帧数据的最后一位表示数据帧传输的结束,而奇偶校验位是用来纠错的,用于判读数据传输过程中是否发生了错误。

三、硬件连接和USART库函数介绍

在这里插入图片描述
图1 电路原理图
STM32芯片有3个同步异步串口和2个异步串口,本实验中使用异步串口的方式进行通讯,连接方式见图1,芯片上的PC10和PC11引脚分别对应异步串口UART4的发送端TX和接收端RX,小车上的电路板已经将这两个引脚引出。
在这里插入图片描述
表2 STM32F103xx芯片引脚功能定义

STM32的芯片引脚和串口的对应关系见上表2(芯片手册P34页),可以看出PC10和PC11引脚的功能分别是异步串口UART4的发送和接收端,为了使用串口通信功能,需要对GPIO和UART4的时钟进行配置。

与串口模块有关的结构体USART_InitTypeDef定义在stm32f10x_usart.h中,库函数USART_Init定义在stm32f10x_usart.c中。
USART_InitTypeDef结构体的配置如下:

typedef struct
{
   
uint32_t  USART_BaudRate;                // 波特率
uint16_t  USART_WordLength;              // 字长
uint16_t  USART_StopBits;                 // 停止位
uint16_t  USART_Parity;                   // 校验位
uint16
  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

放羊郎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值