stm32中常见的通信协议之USART(串口)

这篇具有很好参考价值的文章主要介绍了stm32中常见的通信协议之USART(串口)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.USART的概述

USART是一种通用的串行、异步通信总线,该总线有两条数据线,可以实现全双工的发送和接收。

串口的通信速度用波特率来表示,其单位为bps(bit per second)即每秒钟传送bit的数量。

2.USART的帧格式

stm32中常见的通信协议之USART(串口)

  • 串口规定,数据线在空闲的状态下,必须是置为高电平的状态。
  • 起始信号为低电平,因为串口空闲状态下为高电平,如果要开始发送数据,那么就要以低电平为起始信号,如果不是低电平为起始信号,那么在发送0xffff的时候,就不知道在什么时候开始发送信号。
  • 串口协议规定,数据位先发低位再发高位,可以发送5-8位,但一般使用都是发送8位。
  • 串口的校验位,常用的是奇偶校验,是看数据位里面1的个数,校验位是可有可无的。
  • 串口的停止位,停止位是必须要有的,可以是1位、1.5位或者2位,必须是高电平,表示一次串口通信的结束。

3.串口通信存在的问题

  1. 当数据位发送01的时候,发送的信号是低电平——高电平,当数据位发送0011的时候,发送的信号也是低电平——高电平,这样怎么区分是发送的01还是发送的0011呢,就是需要靠波特率来区分,比如说,当波特率为1的时候,表示1秒钟发送一个2进制位,所以发送01中的0的时候需要1s,而发送0011中的00的时候需要2s,这就是用来区分发送的是01还是0011。
  2. 由于串口通信是异步的,也就是说接收方和发送方的时间信号是不同步的。假设,当前的波特率是1bps,如果发送方发送一位以后,时间持续1s,而接收方由于时间信号问题,认为只持续了0.9s,这就会导致接收方和发送方两者出现时间差,如果要是发送了10位数据,这样就会错出一位,导致整个数据都不能使用,所以串口协议规定不能进行数据的连续发送,只能发送5—8位来避免这种错误的出现。

4.串口的硬件连接

stm32中常见的通信协议之USART(串口)
串口数据线一般是有两根线,因为串口的通信是全双工的,所以可以一边发送,一边接收。但是两个设备之间的数据线要交叉连接,设备1的TXD与设备2的RXD相连,设备1的RXD与设备2的TXD相连。

5.串行通信的过程

stm32中常见的通信协议之USART(串口)
当外部设备通过串行方式发送到串行输入移位寄存器中,然后,串行输入移位寄存器一次性将数据传入到输入数据缓冲器中,MCU就会来读取数据。

发送过程正相反。

6.串口通信常用的寄存器

stm32中常见的通信协议之USART(串口)
串口通信常用到的寄存器包括状态寄存器、数据寄存器和波特率寄存器。但是我一般在写程序的过程中都是使用库函数的方式来写单片机程序,所以这些寄存器都只是了解就好。

7.串口通信的具体程序实现

串口通信的实现都是通过USART.h这个官方提供的固件库中的相关函数来进行配置的,后期我会专门写一篇文章来讲述串口是怎么用库函数来配置的。

以上内容就是我对串口知识的一些理解,希望各位大佬可以批评指正,不胜感激!!!文章来源地址https://www.toymoban.com/news/detail-405184.html

到了这里,关于stm32中常见的通信协议之USART(串口)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32单片机(九)USART串口----第一节:USART串口协议

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋

    2024年02月16日
    浏览(73)
  • 【STM32】STM32学习笔记-USART串口协议(25)

    按数据传送的方式,通讯可分为串行通讯与并行通讯,串行通讯是指设备之间通过少量数据信号线(一般是8根以下), 地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。而并行通讯一般是指使用8、16、32及64根或更多的数据线进行传输的通讯方式, 它们的通

    2024年01月19日
    浏览(47)
  • STM32CubeMX实现USART串口通信

    硬件:stm32f103c8t6核心板 软件:STM32CubeMX 6.6.1 keil5 mdk 这里就不再详细介绍了,详细请参考上一篇博客: https://blog.csdn.net/qq_55894922/article/details/127232999?spm=1001.2014.3001.5501 若点击 Manage embedded software packages 后,出现失败,则需要随便点击其它任一选项,进行下载一些文件,比如点

    2023年04月17日
    浏览(57)
  • STM32入门学习之USART串口通信:

    1.串口通信简介:通用异步收发传输器UART(Universal Asynchronous Receiver/Transmitter)是负责处理数据总线和串口之间的串/并通信的设备。UART通信规定了数据帧的格式:起始位、数据位、校验位、停止位等。UART异步通信只需要通信双方设置好数据帧的格式和波特率即可完成通信。因为

    2024年02月16日
    浏览(49)
  • STM-32:USART串口协议、串口外设—数据发送/数据发送+接收

    通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统。比如STM32芯片里面集成了很多功能模块,如定时器计数、PWM输出、AD采集等等,这些都是芯片内部的电路,它们的配置寄存器、数据寄存器都在芯片里面,操作简单,直接读写就行。但是有些功能STM32内部没有

    2024年02月04日
    浏览(65)
  • STM32F4 基于USART串口的蓝牙通信

    目录 一、硬件资源 连接方案 其他配置 二、实验原理 基本定义 USART介绍 USART工作原理 数据发送 数据接收 蓝牙HM-10配置 三、代码部分 usart.c usart.h Serial.c Serial.h main.c 结语 STM32F401,OLED,蓝牙hm10 连接方案 设备1的TX与设备2的RX连接,这样设备1发送的数据可以被设备2接收到。

    2024年01月17日
    浏览(49)
  • STM32 串口通信USART1的配置和使用

    UART:universal asynchronous receiver and transmitter通用异步收发器 USART:universal synchronous asynchronous receiver and transmitter通用同步异步收发器 上图是利用寄存器配置的步骤,下面我用官方库函数配置USART1 1、要配置串口usart1,先查看数据手册以及开发板原理图的芯片管脚 根据上图可以看

    2024年02月05日
    浏览(48)
  • 嵌入式学习笔记——STM32的USART通信概述

    上两篇文章中,已经实现了GPIO的通用输出以及通用输出模式,从本文开始,笔者将开始有关GPIO的复用功能的介绍,首先是最常用复用功能——串口,本文主要是介绍一些关于通信以及串口的基本概念。 通信协议:通信双方进行信息交换(接收或发送)要满足的规则,而这个规

    2023年04月08日
    浏览(59)
  • 【嵌入式学习-STM32F103-USART串口通信】

    4-1 基本流程 4-2 整体代码 4-2-1 main.c 4-2-2 Serial.c 4-2-3 Serial.h 5-1 查询 5-2 中断 5-3 整体代码 5-3-1 main.c 5-3-2 Serial.c 5-3-3 Serial.h 6-1 使用状态机接收数据包的思路 6-2 串口收发HEX数据包 6-2-1 main.c 6-2-2 Serial.c 6-2-3 Serial.h 6-3串口收发文本数据包 6-3-1 main.c 6-3-2 Serial.c 6-3-3 Serial.h 全双工:打

    2024年02月15日
    浏览(61)
  • STM32串口通信中的USART_RecieveData函数分析

    拿这个中断函数为例         很多人可能注意到了接收数据函数的返回类型为无符号短整型,疑惑这里为什么用了一个无符号字符类型变量rec接收。 先看看这个函数的定义         其实,是因为串口设置的字长为8,所以数据寄存器中第八位为0,第0~7位为数据有效位,

    2024年02月11日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包