[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)采用相同大小的波特率大小。
相关推荐
oy_mail28 分钟前
QoS质量配置
开发语言·智能路由器·php
oyzz12031 分钟前
PHP操作redis
开发语言·redis·php
nashane1 小时前
HarmonyOS 6学习:网络能力变化监听与智能提示——告别流量偷跑,打造贴心网络感知应用
开发语言·php·harmony app
凌波粒1 小时前
Java 8 “新”特性详解:Lambda、函数式接口、Stream、Optional 与方法引用
java·开发语言·idea
LCMICRO-133108477462 小时前
长芯微LCMDC8584完全P2P替代ADS8584,是一款16位、4通道同步采样的逐次逼近型(SAR)模数转换器(ADC)
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·模数转换器adc
STC_USB_CAN_80512 小时前
菜单学习,科学计算器使用【TFT240*320彩屏+实际键盘】@Ai8051U,ST7789
单片机·学习·51单片机
三棱球2 小时前
App逆向学习笔记(三)——Android开发入门课
android·笔记
handler012 小时前
拒绝权限报错!三分钟掌握 Linux 权限管理
linux·c语言·c++·笔记·学习
拾贰_C2 小时前
【Google | Gemini | API | POST】怎么使用Google 的Gemini API (原生版)
开发语言·lua
FreakStudio2 小时前
无硬件学LVGL—定时器篇:基于Web模拟器+MicroPython速通GUI开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机