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

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

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

相关推荐
具身AGI1 分钟前
人类第一视角数据走上评测台:物理AI 人类学习路线
学习
飞凌嵌入式19 分钟前
工业控制+AI视觉齐发,飞凌嵌入式将亮相国际物联网展·深圳站
人工智能·物联网
dadaobusi27 分钟前
5G核心网概念复习
学习
老孙讲技术28 分钟前
老板说「网页上嵌个监控就行」?黑屏三小时后我才搞懂:播放器要的不是 accessToken
物联网·音视频开发·小程序·云开发
老孙讲技术1 小时前
监控刷了 200 条动检,漏掉一次紧急按钮:养老 SaaS 的事件桥接与 P0/P1 分级
物联网·音视频开发·小程序·云开发
慧福堂2 小时前
偏印详解:十神中的智慧与孤影,如何善用偏印成就人生
大数据·学习·学习方法·八字·风水
2601_949950632 小时前
成绩提升不靠盲目刷题:用练题簿找准真正的薄弱知识点
学习·小程序·刷题·小程序推荐
步十人2 小时前
DeepRead-项目介绍
学习
门思科技2 小时前
LoRaWAN Regional Parameters:为什么 CN470 和 EU868 的频点数不同
python·物联网
YM52e2 小时前
鸿蒙 ArkTS 实战|网络常用漫剧主角名称分类表:26 位主角 8 大分类 + 搜索筛选
学习·华为·harmonyos