蓝桥杯【物联网】零基础到国奖之路:七. 串口

蓝桥杯【物联网】零基础到国奖之路:七. 串口

  • [第一节 串口通信理论](#第一节 串口通信理论)
  • [第二节 软件通信协议](#第二节 软件通信协议)
  • [第三节 DMA理论](#第三节 DMA理论)
  • [第四节 CubeMX的配置](#第四节 CubeMX的配置)
  • [第五节 代码模版](#第五节 代码模版)

第一节 串口通信理论

通用异步收发传输器(UART)是一种串行异步收发协议,应用十分广泛。UART将数据二进制一位一位的进行传输。在UART通讯协议中信号线上的状态位高电平代表"1"低电平代表"0"。

硬件连接:

TX:发送数据,连接RX

RX:接收数据,连接TX

GND:共地

仅需要三根线,注意连接时两个设备UART电平,如范围不一致,电平转换后再连接。

第二节 软件通信协议

UART作为异步串口通信协议的一种,原理是将数据字节一位接一位地传输。

如下:

Start Data Parity Stop

size 1 5-9 0-1 1-2

A.空闲位:

UART协议规定,总线空闲状态时信号线状态为"1"即高电平。

B.起始位:

开始进行数据传输时发送一个低电平"0"来表示传输字符的开始。因为空闲位一直是高电平所以发送一个区别于空闲状态的信号即为低电平。

C.数据位:

起始位后就是要传输的数据,可以是5,6,7,8,9位,构成一个字符,一般都是8位。先发送最低位最后发送最高位。

D.奇偶校验位:

数据传送完后,进行奇偶校验,校验位其实是调整个数,串口校验分几种:

D.1.无校验

D.2.奇校验

D.3.偶校验

E.停止位:

数据结束标签,可以是1位,1.5位,2位的高电平。

F.波特率:

数据传输速率使用波特率来表示,单位bps,常见波特率9600bps,115200bps等等,如果串口波特率设置为9600bps,那么传输一个比特的时间是

1/9600=104.2us。

以9600 8N1(9600波特率,8个数据位,没有校验位,1位停止位)为例,这是目前最常用的串口配置,传输"O","K"两个ASCII值,"0"为79二进制为01001111,"K"为对应的二进制为01001011,传输格式为:

01111001010110100101

传输先低位后高位。

串口波特率为9600,1bit传输时间大约为104us,传送一个数据实际是10个比特(开始位,8个数据位,停止位),一个bytes传输速率实际为9600*8/10=7680bps。

第三节 DMA理论

DMA即直接存储器访问。DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器的高速数据传输。

转移数据是可以不用CPU参与的。

希望外设A数据拷贝到B,只要提供一条数据通路,直接让数据由A到B不经过CPU处理,DMA就是基于以上设想设计的,作用就是解决大量数据转移过度消耗CPU资源的问题。

第四节 CubeMX的配置

注意要打开USART2的NVIC。

第五节 代码模版

DMA模式发送,注意用strlen得到数据长度,添加头文件#include <stdio.h>;

头文件内声明

main函数编写

相关推荐
编程版小新6 分钟前
Day1:体验产品,以画图方式梳理用户操作和管理员操作
学习
小赖同学啊28 分钟前
物联网数据中台设计思路
物联网
国科安芯42 分钟前
基于AS32S601ZIT2型抗辐照MCU的商业航天卫星姿态确定与控制系统研究
单片机·嵌入式硬件·安全·fpga开发·架构·risc-v
大鱼>1 小时前
时序数据库+AI:物联网海量数据的存储与实时分析
人工智能·物联网·时序数据库·数据存储·aiot
三品吉他手会点灯1 小时前
STM32F103 学习笔记-24-I2C-读写EEPROM(第2节)-I2C协议层介绍
笔记·stm32·学习
项目題供诗1 小时前
STM32-DMA数据转运+AD多通道(二十一)
stm32·单片机·嵌入式硬件
z200509301 小时前
【C++学习】C++ 类型转换深度解析:从 C 风格缺陷到 C++ 四种安全转换的思想内核
c语言·c++·学习
FPC_小西1 小时前
LDO 低压差线性稳压器 拆解电源稳压核心原理
人工智能·单片机·嵌入式硬件·集成学习·pcb工艺·hdi高密度互联
三品吉他手会点灯1 小时前
STM32F103 学习笔记-24-I2C-读写EEPROM(第3节)-STM32的I2C框图详解
笔记·stm32·学习
踏着七彩祥云的小丑1 小时前
嵌入式测试学习第 36 天:串口日志分析、通过日志定位简单问题
单片机·嵌入式硬件·学习