100ask七天物联网训练营学习笔记 - 串口

100ask七天物联网训练营学习笔记 - 串口

周末学习STM32串口知识,对单片机与其他设备通信有关的内容有了一定了解,为下一步使用ESP8266打基础,下面就梳理一下今天的学习内容。

1. 通信分类

通信可以通过不同的角度来分类和理解。

1.1 按数据总线分类

按通信总线的形式可以分为串行和并行,与计算机上的总线类似,串行总线的优势在于使用的物理链路较少,劣势则是通信效率会相对较低。并行总线优势是通信效率高,但是物理连接复杂,但随着通信速率越来越高,并行总线线路之间的干扰会变大,相反串行总线收到的干扰就相对较少。

请添加图片描述

1.2 按数据方向分类

如果按数据方向分类的话,可以分为全双工、半双工、单工。

全双工:双方可同时收发信息,例如电话。

半双工:双方都可以收发信息,但是在同一时刻只能一方发送,另一方接收,例如对讲机。

单工:只能由发送方发出数据,接收方接收数据,例如电台和收音机。

请添加图片描述

1.3 按同步方式分类

按同步方式分类可以分为同步、异步通信。

同步通信:通信时通常有一根专门的时钟总线来同步双方的收发动作,收发双方只需要按照时钟信号来进行收发。

异步通信:没有专门的时钟总线,双方按照提前约定好的通信速率、规则,进行收发,如果有一个方没有按照约定操作,则通信就无法正常完成。例如在串口通信中,如果收发双方的波特率不同,则接收方收到的就是乱码。

1.4 通信速率

比特率:在单位时间内传输的比特位个数,单位是bit/s,缩写bps(bit per second)。

波特率:在单位时间内传输的码元个数,单位是Bd。

码元:承载信息量的基本信号单位,以一条电线上传输的信号为例,码元就是电线上的电平值。电线上有几种电平值,则码元就有几种状态。因此码元的值是大于等于1bit的。也就是说,码元如果只有两种状态,则波特率等于比特率。

1.5 常用通信协议

请添加图片描述

2. 串口介绍

串口是单片机上最常用的通信外设,常用的通过串口可以进行调试、程序下载以及连接蓝牙、WiFi、GPS、GSM等模块。串口是通信协议,而TTL、RS232、RS422、RS485等则是为了适应不同的使用场景而针对串口通信协议实现的电平标准。

2.1 串口参数

TTL:全双工,单片机引脚的串口电平为TTL电平,传输距离有限。

RS232:全双工,通常为单片机与电脑通信时使用,抗干扰能力较弱,传输距离最多十几米。

RS485:半双工,传输距离几十米至上千米,采用差分信号,因此抗干扰能力较强,传输速率也较高。

RS422:可以理解为RS485的全双工版本。

2.2 STM32的串口

STM32中串口分为USARTUART,主要区别为USART支持同步通信,UART支持异步通信。嵌入式应用中异步串口通常就能满足绝大部分使用需求。STM32F103中的串口功能:

请添加图片描述

3. CubeMX创建工程

CubeMX中使能USART1为异步通信,选择波特率1152008位数据位无奇偶校验1位停止位,并且使能USART1中断

请添加图片描述
请添加图片描述

4. 程序代码


// usart.c
#define USART1_BUFF_LEN  200

static uint8_t rx_data = 0;		// 接收缓存
static uint8_t rx_len = 0;		// 接收字节计数
static uint8_t usart1_buff[USART1_BUFF_
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值