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

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

❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。
☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋。
🌙专栏目标:实现从零基础入门51单片机和STM32单片机,力求在玩好单片机的同时,能够了解一些计算机的基本概念,了解电路及其元器件的基本理论等。

⭐️ 专栏主要内容: 主要学习STM32单片机的功能、各个模块、单片机的外设、驱动等,最终玩好单片机和单片机的外设,全程手敲代码,实现我们所要实现的功能。
🌴 专栏说明 :如果文章知识点有错误的地方,欢迎大家随时在文章下面评论,我会第一时间改正。让我们一起学习,一起进步。
💑专栏主页:http://t.csdn.cn/HCD8v

本学习过程参考:https://space.bilibili.com/383400717

STM3单片机安装软件、各种资料以及源码的路径:
链接:https://pan.baidu.com/s/1snD0uuTfMhchFqOMWvAiHA?pwd=asdf#list/path=%2F
提取码:asdf

链接里压缩包的解压密码:32

本大节主要学习USART的相关知识,包含九小节:
第一小节主要学习USART串口协议的理论基础知识
第二小节主要学习USART串口外设的理论基础知识
第三小节是对第一、二小节的内容写一个串口发送程序进行练习
第四小节是对第一、二小节的内容再写一个串口发送+接收的程序进行练习
第五小节主要学习USART串口数据包的理论基础知识
第六小节是对第五小节的内容写一个串口收发HEX数据包程序进行练习
第七小节是对第五小节的内容再写一个串口收发文本数据包程序进行练习
第八小节主要了解FlyMcu串口下载的知识
第九小节主要了解STLINK Utility串口下载的知识
最终附上所有的源代码;

本小节主要学习USART串口协议的理论基础知识。

一、STM32通信接口介绍

STM32单片机(九)USART串口----第一节:USART串口协议,51单片机和STM32单片机入门,单片机,stm32,嵌入式硬件,程序人生

  • 以上通信接口,STM32C8T6均支持;
  • USART包含TX和RX两个引脚,也叫TXD和RXD;TX(Transmit Exchange)是数据发送脚,RX(Receive Exchange)是数据接收脚;数据按照协议在这些引脚上进行输入和输出,从而实现通信;
  • USART是全双工的模式;全双工是指通信双方能够同时进行双向通信,一般来说,全双工的通信都有两根通信线;比如串口,一根TX发送,一根RX接收;
  • USART是异步通信,所以需要通信双方约定一个采样频率,并且还需要加一些帧头帧尾等进行采样位置的对齐;
  • USART的电平是单端电平,也就是说它们引脚的高低电平都是对GND的电压差;所以单端通信的双方必须共地,也就是把GND接在一起;

二、串口通信

STM32单片机(九)USART串口----第一节:USART串口协议,51单片机和STM32单片机入门,单片机,stm32,嵌入式硬件,程序人生

  • 上图的底部三幅图,左边是USB转串口模块, 上面的芯片是CH340;这个芯片可以把串口协议转换为USB协议,它一边是USB口,可以插在电脑上,另一边是串口的引脚,可以和支持串口的芯片连接在一起;这样就能实现串口和电脑的通信了;中间的图是陀螺仪传感器模块;右边是蓝牙串口模块;

三、硬件电路

STM32单片机(九)USART串口----第一节:USART串口协议,51单片机和STM32单片机入门,单片机,stm32,嵌入式硬件,程序人生

  • 上图就是串口的接线图
  • 一般串口通信模块都有四个引脚,VCC、TX、RX、GND;VCC和GND是供电,TX和RX是通信的引脚;串口通信的TX、RX、GND是必须要接的;上面的VCC,如果两个设备都有独立供电,那么VCC可以不接;

四、电平标准

STM32单片机(九)USART串口----第一节:USART串口协议,51单片机和STM32单片机入门,单片机,stm32,嵌入式硬件,程序人生

  • 单片机中最常用的就是TTl电平;

五、串口参数及时序

STM32单片机(九)USART串口----第一节:USART串口协议,51单片机和STM32单片机入门,单片机,stm32,嵌入式硬件,程序人生

  • 上图底部的两张时序图,就是串口发送一个字节的格式,这个格式是串口协议规定的
  • 串口中,每一个字节都装载在一个数据帧里面,每个数据帧都有起始位、数据位和停止位组成,左图中数据位有8个,代表一个字节的8位;右图的数据位有9个,除了一个字节的8位外,最后一位是奇偶校验位;
  • 串口的参数包括波特率、起始位、数据位、校验位、停止位等
  • 波特率的用途是规定串口通信的速率;
  • 串口的空闲状态是高电平,也就是没有数据传输的时候,引脚必须要置高电平,作为空闲状态;然后需要传输的时候,必须要先发送一个起始位,这个起始位必须是低电平,来打破空闲状态的高电平,产生一个下降沿,这个下降沿就告诉接收设备,这一帧数据要开始了;
  • 同理,当数据发送结束时必须有一个停止位,用于数据帧间隔,固定为高电平;同时这个停止位也是为下一个起始位做准备;
  • 所以起始位固定为0,产生下降沿,表示传输开始;停止位固定为1,把引脚恢复成高电平;
  • 数据位是低位先行,也就是先发送低位,再发送高位;比如要想发送0x0F,也就是00001111,波形如下图所示:
    STM32单片机(九)USART串口----第一节:USART串口协议,51单片机和STM32单片机入门,单片机,stm32,嵌入式硬件,程序人生

六、串口时序

STM32单片机(九)USART串口----第一节:USART串口协议,51单片机和STM32单片机入门,单片机,stm32,嵌入式硬件,程序人生

  • 上面列出了几个串口通信的实际波形;看完这几个波形我们就能大致理解串口是如何传输数据的了;
  • 首先左边第一个波形是发送一个字节数据0x55时,再TX引脚输出的波形;因为串口传输是从低位到高位传输的,所以第一个波形从低到高依次是1->0->1->0->1->0->1->0,所以从高到底排列的二进制数据就是01010101,也就是0x55
  • 第一个波形波特率是9600,所以每一位的时间就是1/9600,大概是104us,可以看到,上图第一个波形每一位就是100us多一点,就是104us;没发送数据的时候,空闲状态是高电平,数据帧开始,先发送起始位,产生下降沿,代表数据帧开始;数据0x55转为二进制,低位先行,就是依次发送10101010;然后这个参数是8位数据,1位停止,无校验;所以8个数据位结束后,紧跟着后面就是停止位,把引脚置回高电平,这样一个数据帧就完成了;
  • 同样的道理,左边第二个波形是发送0xAA;
  • 左边第三个波形是发送0xFF
  • 左边第四个波形是发送0x00
  • 右边的波形波特率改为了4800,也就是波特率变为一半,那相应的,波形的时长就会变为原来的两倍;
  • 右边的第二个波形加了奇偶校验位

七、串口通信总结

总结一下就是:
TX引脚输出定时反转的高低电平;RX引脚定时读取引脚的高低电平;每个字节的数据加上起始位、停止位、可选的校验位,打包成数据帧,依次输出在TX引脚,另一端RX引脚依次接收这样就完成了字节数据的传递;这就是串口通信文章来源地址https://www.toymoban.com/news/detail-574403.html

到了这里,关于STM32单片机(九)USART串口----第一节:USART串口协议的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • APM32F072单片机进入STOP模式,并通过RTC Wakeup Timer和USART1串口接收事件唤醒

    串口初始化(注意USART1时钟源要选择HSI): 使用power_init函数初始化RTC,然后调用power_enter_stop_mode(n)函数进入STOP模式,n秒后自动唤醒,或由USART1接收唤醒:

    2024年02月13日
    浏览(51)
  • 两块stm32单片机串口通信讲解

    本篇文章记录了如何使用stm32f103zet6核心板(下位机)通过串口向stm32f103zet6学习板(上位机)发送数据,stm32f103zet6学习板完成接收,并将接收到的数据显示在LCD显示屏上。 正点原子精英STM32F103ZET6学习板一块(带2.8寸显示屏) STM32F103ZET6核心板一块 电源适配器、数据线以及杜

    2024年02月16日
    浏览(129)
  • 【单片机】基于STM32的UART串口通信

    简单讲解一下UART通信协议,以及UART能够实现的一些功能,还有有关使用STM32CubeMX来配置芯片的一些操作。实验内容基于 正点原子精英板 开发板,单片机芯片为 STM32F103ZET6 。 在后面我会以我使用的STM32F429开发板来举例讲解(其他STM32系列芯片大多数都可以按照这些步骤来操作

    2024年01月17日
    浏览(79)
  • USART HMI串口屏+单片机通讯上手体验

    🔖本文采用淘晶驰4.3寸IPS串口屏实物验证,HMI串口屏经简单配置即可快速实现,串口通讯效果。串口屏上手简单,有独立的开发套件,容易上手,驱动显示和功能代码独立。本文仅针对串口调试信息显示实现做介绍,不涉及复杂功能实现。 🎞打印输出效果: 🌼模拟类似于

    2024年02月03日
    浏览(45)
  • 单片机第三季-第一课:STM32基础

    STM32系列分类: 型号命名原则: STM32F103系列: 涉及到的几个概念: DMA:Direct Memory Access,直接存储器访问。DMA传输将数据从一个地址空间复制到另一个地址空间,提供外设和存储器或存储器和存储器之间的高速数据传输; 2.0到3.6V供电,IO口可以兼容5V电压; 与51单片机不同

    2024年02月09日
    浏览(45)
  • 【STM32】基础知识 第一课 单片机简介

    单片机 (Single-Chip Microcomputer) 单品微型计算机, 是一种集成电路芯片. 电脑 vs 单片机: 电脑 单片机 CPU CPU 内存 SRAM 硬盘 Flash 主板 外设 SRAM 静态随机读取器 (Static Random-Access Memory): SRAM 是随机存储器的一种, 属于静态数据, 这类存储器要是维持电源, 里面存储的信息就可以恒常维持

    2024年02月11日
    浏览(98)
  • 【STM32】单片机模式配置&FlyMcu串口下载固件&STLINK Utility

    目录 1 单片机模式配置 1.1 存储器映像 1.2 启动配置 1.3 启动模式选择 1.4 硬件展示 1.4.1 BOOT引脚配置: 1.4.2 USB转TTL 2 FlyMcu串口下载固件         2.1软件配置方式         2.2 选项字节 3 STLINK Utility 3.1 简介 3.2 下载程序流程 通过 设置选择管脚 ,对应到各种启动模式的不

    2024年01月20日
    浏览(64)
  • 使用DMA传输实现单片机高效串口转发——以STM32系列为例

    Date Author Version Note 2023.08.06 Dog Tao V1.0 1. 完成了文档的撰写。 2023.08.23 Dog Tao V1.1 1. 增加了STM32F103-USART2的DMA传输配置示例。 2. 增加了STM32F103与F407单片机的DMA控制器介绍并更改了第一章节的结构。 应用场景 在许多现实应用场景中,例如工业自动化控制、嵌入式通信设备等领域,

    2024年02月14日
    浏览(53)
  • 基于STM32单片机BOOTLOADER通过串口升级程序IAP——APP方案

                            此方法前提是你得有一个EEPROM         我用的单片机是STM32F103ZET6 , 此单片机FLASH容量为512KB; 在此单片机里面FLASH的起始地址是0X8000000,BOOT作为引导加载程序一般都是从这个地址开始,单片机一上点默认会从这个地址开始运行,所以将自己

    2024年02月04日
    浏览(62)
  • STM32+ESP-01s+EMQX实现单片机MQTT协议传输数据上云(二)STM32F103与ESP-01s的Usart通信,实现STM32连接上网上云

    单片机:STM32F103c8t6 WiFi模块:ESP8266-01s EMQX:自身服务器上搭载emq服务器或者借用emqx window 版本  USB TO TTL模块:CH340 因为CH340不能给ESP-01s供3.3V的电,所以测试时需要外加供电           本章中涉及到的技术原理主要为ESP01S wfi模块的AT指令通信,我在上一篇文章给大家提到了

    2024年02月16日
    浏览(55)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包