[STM32] 4-1 UART与串口通信

文章目录

前言

  • 本笔记内容,为本人依据B站UP主"铁头山羊"视频内容(本人为其粉丝),归纳整理总结而来,如有侵权,联系立即删除,同时有想详细了解的也可进行观看bilibili铁头山羊

  • 硬件:STM32F103C8T6

  • 软件:Keil

4-1 UART与串口通信

串口简介

  • transmit-发送

  • receive-接收

串口接线

复制代码
RX -> TX
TX -> RX
VCC -> VCC
GND -> GND

数据帧

  • 数据帧传输是数据传输的最基本单元

串口的数据帧格式

空闲位
  • 持续高电平
起始位
  • 输出一个低电平
数据位
  • LSB First(Least Significant Bit First)先传最低有效
校验位(位于数据位内部)
奇偶校验
复制代码
(1)数'1'的个数;
(2)'1'的个数为奇数位;
(3)'1'的个数为偶数位。
停止位
  • 表示帧的结束,高电平

  • 长度可以取:0.5,1,1.5,2

异步通信和波特率

同步通信

  • 收发双方共享时钟

异步通信

  • 收发双方不共享时钟

波特率

  • 波特率:每秒传输码元的个数

  • 正常通信的条件

    • 采用相同的波特率

    • 采用相同的数据帧格式

流控的概念

  • 数据传输完成后的反馈,防止数据丢失

串口流控的工作原理

复制代码
(1)TX:数据发送
(2)RX:数据接收
(3)CTS(Clear To Send):可以发送。低电平有效,发送方有效。
(4)RTS(Request To Send):请求发送。低电平有效,接收方有效。

随堂测试

问题1:说出Tx、Rx、CTS、RTS、VCC、GND的作用

复制代码
答:
(1)Tx:发送数据;
(2)Rx:接收数据;
(3)CTS:可以发送;
(4)RTS:可以接收;
(5)VCC:供电引脚,如果通信的一方需要给另一个引脚供电,那么就要将通信双方的VCC进行连接;
(6)GND:提供参考电压。

问题2:串口的数据帧最多包含多少个位?

复制代码
答:
(1)1位起始位,8位有效数据位,1位校验位,2位停止位;
(2)最多包含12位。

问题3:说出奇校验和偶校验的规则

复制代码
答:
(1)奇校验:数据里的 "1" 太多或太少,补个校验位让 "1 的总数" 变成奇数(补 1 或补 0);
(2)偶校验:数据里的 "1" 太多或太少,补个校验位让 "1 的总数" 变成偶数(补 1 或补 0)。

问题4:通信双方应当如何选择数据帧格式和波特率?

复制代码
答:
(1)采用相同的数据帧格式;
(2)采用相同大小的波特率大小。

问题4:通信双方应当如何选择数据帧格式和波特率?

复制代码
答:
(1)采用相同的数据帧格式;
(2)采用相同大小的波特率大小。
相关推荐
曹牧几秒前
Bug定位
开发语言
linbaiwan6661 分钟前
PD和QC快充协议电压诱骗(取电)芯片:USB-C口支持PD,USB-A口支持QC
c语言·开发语言
大飞记Python2 分钟前
【2026更新】Python基础学习指南(AI版)——06函数
开发语言·人工智能·python
www.stcai.com2 分钟前
《单片机原理与应用》,详细介绍。基于 STC, Ai8051U, 8位/32位 双核 全支持 AiCube 图形化配置外设,自动生成程序框架
单片机·嵌入式硬件
电商API_180079052474 分钟前
反向海淘是什么?现状如何?未来趋势如何?
数据库·人工智能·笔记·性能优化·数据挖掘·网络爬虫
我是一颗柠檬5 分钟前
【JDK8新特性】函数式接口Day2
java·开发语言·后端·intellij-idea
计算机安禾7 分钟前
【c++面向对象编程】第45篇:萃取(Traits)技术与策略类:STL源码中的智慧
开发语言·c++
Highcharts.js2 小时前
缺失数据可视化图表开发实战|Highcharts创建人员出生统计面积图表示例
开发语言·前端·javascript·信息可视化·highcharts·图表开发
测试员周周7 小时前
【Appium 系列】第16节-WebView-H5上下文切换 — 混合应用的自动化难点
运维·开发语言·人工智能·功能测试·appium·自动化·测试用例
辰海Coding9 小时前
MiniSpring框架学习笔记-解决循环依赖的简化IoC容器
笔记·学习