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

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

  • [第一节 串口通信理论](#第一节 串口通信理论)
  • [第二节 软件通信协议](#第二节 软件通信协议)
  • [第三节 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函数编写

相关推荐
youcans_7 分钟前
【STM32-MBD】(15)Simulink 模型开发之三相互补 PWM
stm32·单片机·嵌入式硬件·matlab·foc
苦逼IT运维1 小时前
从 0 到 1 理解 Kubernetes:一次“破坏式”学习实践(一)
linux·学习·docker·容器·kubernetes
野犬寒鸦1 小时前
从零起步学习并发编程 || 第五章:悲观锁与乐观锁的思想与实现及实战应用与问题
java·服务器·数据库·学习·语言模型
阿蒙Amon1 小时前
TypeScript学习-第13章:实战与最佳实践
javascript·学习·typescript
hrw_embedded1 小时前
基于CH395Q网卡移植ftplib的FTP客户端
网络·stm32·ftp·linux库
北京耐用通信2 小时前
耐达讯自动化Profinet转Devicenet网关:精细化工行业的“协议融合利器”
人工智能·物联网·网络协议·自动化·信息与通信
逐步前行2 小时前
STM32_内部结构
网络·stm32·嵌入式硬件
云小逸2 小时前
【nmap源码学习】 Nmap 源码深度解析:nmap_main 函数详解与 NSE 脚本引擎原理
网络协议·学习·安全
hssfscv2 小时前
Javaweb学习笔记——后端实战8 springboot原理
笔记·后端·学习
苍煜2 小时前
超简单 poi-tl 学习博客:从0到1掌握Word生成(无需模板+模板填充)
学习·word