IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 基于STM32实验:了解串口协议并实现串口通信、LED流水灯实践 -> 正文阅读

[嵌入式]基于STM32实验:了解串口协议并实现串口通信、LED流水灯实践

本实验基于STM32F103C8T6核心板操作
实验器材:核心板、ST-LINK烧录器、若干杜邦线及飞线、3个LED灯、面包板
?????STM32CubMX、Keil5 MDK、串口调试助手


一、了解串口协议

?串口协议即一种规则——规范串口之间数据的传输。将串口通信分为协议层和物理层,物理层为线路连接;协议层制定通信的规则,双方数据的打包、解包标准(串口数据包:起始位、数据位、校验位、停止位)
?常用协议有RS-232、RS-422、RS-485。以下是具体介绍

1. RS-232协议

RS-232代表着什么?
?数据传输标准是由美国电子工业协会(EIA)制定的。前缀RS表示推荐标准。所有EIA标准均以这些字符开头。RS-232的正式规范是它是一个使用串行二进制数据交换在DTE和DCE设备之间进行通信的接口。DTE是数据终端设备的缩写,而DCE代表数据通信设备。本实验中,上位机(PC)就是DTE,STM32就是DCE。

?下图是设备间以RS-232标准进行串口通信的视图。

在这里插入图片描述

?可见接收两端都有一个电平转换芯片,用于将RS-232标准的电平转换为TTL电平,这是因为TTL电平在计算机内部的运行是理想的,但在通信使用中大多采用并行数据传输且抗干扰能力差,这对于设备间的通信传输就不适合了,因此考虑可靠性和成本原因,最开始制定了RS-232协议电平(抗干扰容限较大)负责较近距离设备通信。下图是电平比对:

RS-232TTL
“1”-15V~-5V+2.4V~+5V
“0”+5V~+15V0V~+0.4V

?以下是物理层接口视图:(现在使用的RS-232协议一般只使用RXD和TXD分别用于接收/传送数据)在这里插入图片描述
?RS-232的缺点:电平值较高易损坏电路、传输速率满足不了需求(最高19200bps)、抗干扰能力不足、有限的通信距离(通常在15m以内)、仅能实现点对点。
?综上,后续推出了RS-422用于弥补RS-232传输速率和距离、抗干扰能力和仅能实现点对点的不足,之后又因工业控制技术的飞速发展,亟需一种总线通信技术能够适合远距离的数字通信,因此在RS-422的基础上推出了RS-485。此处仅将RS-422当作一个过渡版本,接下来是对RS-485的介绍。

2. RS-485

?典型的串行通信标准就是RS-232和RS-485。
?RS-485与RS-232的不同:
???1.逻辑电平不同,以下为比对

RS-485RS-232
“1”+2V~+6V-15V~-5V
“0”-6V~-2V+5V~+15V

???2.传输速率最高可达10Mbps
???3.抗干扰能力更强
???4.最大实际传输距离可达3000m
???5.RS-485为差分传输(抗干扰能力强的原因),RS-232为单端传输
???6.RS-485为半双工(原因在于数据传输,下文解释),RS-232为全双工
???7.RS-485能实现一对多通信传输,以下是详细介绍

?RS485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,多采用的是两线制接线方式,这种接线方式为总线拓扑结构,在同一总线上最多可以挂接32个节点。
在这里插入图片描述
?RS-232使用的是差分传输,如果要用单片机控制接口设备,就要使用到收发器,以下图示
在这里插入图片描述?其中:

??A和B为总线;

??R为接收器输入;

??RE为接收器使能信号;

??DE为发送器使能信号;

??D为发送器输出;

?以上可以见得在通信传输中需要使用的收发器只能传输一路差分信号,因此RS-485是半双工工作模式。在工业控制中,一般都是主机和从机之间进行通信,以下视图
在这里插入图片描述

3. 了解"USB/TTL转232"模块工作原理

在这里插入图片描述
?工作原理::
?串口发送
?串口应用发送数据->USB串口驱动获取数据->驱动将数据经过USB通道发送给USB串口设备->USB串口设备接收到数据通过串口发送

?串口接收
?USB串口设备接收串口数据->将串口数据经过USB打包后上传给USB主机->USB串口驱动获取到通过USB上传的串口数据->驱动将数据保存在串口缓冲区提供给串口应用读取

二、 安装 stm32CubeMX,配合Keil,分别尝试使用寄存器地址方式和HAL库这两种方式,完成下列任务:

1. 重做上一个LED流水灯作业,即用GPIO端口完成3只LED红绿灯的周期闪烁。

?在上篇文章中已经在keil5上进行了模拟仿真和逻辑分析仪观察输出波形,接下来进行烧录和演示,这里用的是ST-LINK烧录器,在option for taget中的debug选择即可。
在这里插入图片描述

?下载烧录
在这里插入图片描述

?演示图:
在这里插入图片描述

2. 完成一个STM32的USART串口通讯程序

要求:1)设置波特率为115200,1位停止位,无校验位;
???2)STM32系统给上位机(win10)连续发送“hello world!”。win10采用“串口助手”工具接收。

?接下来是利用HAL库完成对此任务的完成,上篇文章中已经详细说明了初始设置步骤。

  • 创建新工程,选择STM32F103C8T6芯片。
  • 设置引脚PA10和PA9为UART接收和传输模式
    在这里插入图片描述
  • 设置HSE时钟
    在这里插入图片描述
  • 设置调试
    在这里插入图片描述
  • 设置传输参数(115200bps传输速率、1停止位、无校验位)
    在这里插入图片描述
  • 最后生成工程即可,接下来,转入keil中操作主函数,使之能够向上位机传输“hello world!”
  • 在主函数内键入以下代码,此为使用HAL_UART进行数据传输
    在这里插入图片描述
  • 接下来就是编译、烧录即可,以下为串口助手演示
    在这里插入图片描述

三、利用虚拟逻辑分析仪观察两个实验中各引脚的时序波形

1. LED流水灯

?在上篇文章中已经详细介绍了如何使用逻辑分析仪观察LED流水灯各引脚电平,以下是结果图。

在这里插入图片描述
?分析:从上到下依次为PA5、PB9、PC14,低电平代表灯亮,高电平代表灯灭,可以观察出,三个灯是流水灯输出,且每个灯亮的间隔刚好是1s

2. 串口通信输出hello world!

?进入options for target中的debug
?Dialog DLL 设置为 DARMSTM.DLLTARMSTM.DLL
?Parameter 都设置为 -pSTM32F103C8 (芯片型号)
在这里插入图片描述

  • 进入仿真,加入USART1_SR,Display type选择bit,观察仿真波形

在这里插入图片描述

  • gid(虚线间隔)为50ms时

在这里插入图片描述

  • grid为0.5ms时
    在这里插入图片描述

  • grid为0.1ms时
    在这里插入图片描述

  • grid为2us时
    在这里插入图片描述

?由前几张图分析得每个信号之间高电平持续约100ms;传输信号期间其低电平(即有效电平)持续约0.1ms、传输信号期间高电平持续约6us。


总结

本文是基于上篇文章的实验,了解了RS-232和RS-485两个典型得串口协议,实现LED流水灯和串口通信传输,最后再次利用虚拟逻辑分析仪分别对两个实验得输出波形进行了分析验证。


参考文章

https://blog.csdn.net/qq_45945548/article/details/121720676
https://blog.csdn.net/Qxiaofei_/article/details/116565060
https://blog.csdn.net/weixin_48268385/article/details/120947234
https://blog.csdn.net/weixin_43937576/article/details/109636580

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-10-22 21:31:28  更:2022-10-22 21:34:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:43:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码