STM32CubeIDE基础学习-RS232通信

news2024/11/25 20:26:19

STM32CubeIDE基础学习-RS232通信


文章目录

  • STM32CubeIDE基础学习-RS232通信
  • 前言
  • 第1章 工程配置
  • 第2章 代码编写
  • 第3章 实验现象
  • 总结


前言

   RS232也是串口的一种,RS-232是由电子工业协会(Electronic Industries Association, EIA)所制定的异步传输标准接口。在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。RS232是全双工通信,通信距离最远15米内,RS是英文“推荐标准”的缩写,232为标识号。

   RS-232接口标准可以使用25个脚的DB25连接器,也可以使用9个脚的DB9连接器。工业控制中RS232接口一般只使用TXD、RXD和GND三条线。对于异步串行通信,只使用到了其中3个管脚。该接口常用于工业设备中。

关于RS232的特性及描述参考文章

STM32CubeIDE基础知识学习回顾

实验目的:
学习RS232串口通信功能的使用,实现串口助手发送内容给单片机,单片机将收到的内容转发回给串口助手进行显示。

引脚介绍
RS232的转换芯片的串口接到单片机的串口2,即PA2、PA3引脚上。

电路(略):


第1章 工程配置

这个实验的配置比较简单,就直新建一个工程就行,具体详细的步骤可以回顾一下前面的文章,这里就不重复描述了,直接在上面添加串口功能配置即可。

第一步:按照标号的顺序依次配置,如下图所示:

在这里插入图片描述
串口模式选择异步通信方式,下面串口的参数就随意自己设置,我设置波特率为115200,8位数据位,1位停止位,无奇偶校验。如果选择其它的,后面使用就按照这里设置的来选择即可。

配置完成后如下图所示:

在这里插入图片描述

可以看到芯片处多了一个USART2的定义。

第二步:基础的配置完成后,再配置NVIC相关参数。

在这里插入图片描述
设置中断分组和中断优先级。

到此,串口2相关的配置就完成了,生成工程就可以编写代码了。

第2章 代码编写

生成代码后,可以看到main文件里面多了一个串口2的初始化函数,如下图所示:

在这里插入图片描述

双击进去usart.c文件以后,可以看到相关串口参数,如下图所示:

在这里插入图片描述

在这里插入图片描述
里面主要存放串口的初始化和中断相关的配置。

中断服务函数如下图所示:

在这里插入图片描述
当检查上面代码没有问题以后,就可以进行功能代码的编写了。

在main文件里面定义全局变量用来存放接收的数据,如下图所示:

在这里插入图片描述

在main函数里面开启接收中断使能,如下图所示:

在这里插入图片描述
while循环里面不用写任何代码。

接着在stm32f1xx_it.c文件里面编写中断回调内容,如下图所示:

在这里插入图片描述
可以发现,这个代码和前面的串口中断代码是一样的。

代码片示例如下:

/* USER CODE BEGIN 1 */
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
	if(huart->Instance == USART2)
	{
		HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
		HAL_UART_Transmit_IT(&huart2, rx_buf, sizeof(rx_buf));
		HAL_UART_Receive_IT(&huart2, rx_buf, sizeof(rx_buf));
	}
}
/* USER CODE END 1 */

第3章 实验现象

在电脑助手发送内容到单片机,单片机接收到这些内容后,再发送到电脑的串口助手,所以就可以在电脑串口助手的接收区上看到具体的数据内容了。如下图所示:
在这里插入图片描述


总结

要实现RS232通信不是很难,只要靠电平转换芯片完成,能明白前面USART的通信使用即可。

注意RS232的接口特性和电气特性即可,由于手上没有其它的RS232的设备进行通信,所以我就找了一根USB转RS232的线接电脑串口调试助手使用,效果是一样的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1559089.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

常用类(比较器、System类、Math类、BigInteger与BigDecimal)

目录 一、Java比较器1.1、概述1.2、Comparable自然排序举例1.3、自定义类实现Comparable自然排序1.4、使用Comparator实现定制排序 二、System类、Math类、BigInteger与BigDecimal2.1、System类2.2、Math类2.3、BigInteger与BigDecima 一、Java比较器 1.1、概述 Java中的对象…

物联网实战--入门篇之(五)嵌入式-IIC驱动(SHT30温湿度)

目录 一、IIC简介 二、IIC驱动解析 三、SHT30驱动 四、总结 一、IIC简介 不管是IIC还是串口,亦或SPI,它们的本质区别在于有各自的规则,就是时序图;它们的相同点就是只要你理解了时序图,你就可以用最普通的IO引脚模…

P6学习:Oracle Primavera P6 OBS/责任人解析

前言 Primavera P6 EPPM 责任人用于管理 P6 企业项目组合管理 (EPPM) 系统中的项目所有权和权限。 Primavera P6 EPPM 中的所有项目都至少围绕三个结构进行组织:称为企业项目结构 (EPS) 的用于组织项目的结构、称为工作分解结构 (WBS) 的用于组织项目内活动的结构…

书生·浦语全链路开源开放体系 第二期

文章目录 大模型背景大模型开发流程InternLM 2.0SFT与RLHFInternLM2主要亮点 书生浦语全链路开源开放体系数据-书生万卷InternLM-Train微调 XTuner评测工具 OpenCompass部署 LMDeploy智能体 Lagent智能体工具箱 AgentLego 大模型背景 专用模型:针对特定的任务&…

亚马逊测评新策略:解决底层环境防关联,提升下单成功率

对于做测评的环境系统,确保稳定性和成功率是非常重要的。市面上有各种环境方案,如虚拟机、模拟机、gcs、云手机、VPS等。然而,这些方案不仅成本高,而且成功率很低。因此,一个好的环境系统是成功的基础。 亚马逊平台的…

算法学习——LeetCode力扣动态规划篇5(198. 打家劫舍、213. 打家劫舍 II、337. 打家劫舍 III )

算法学习——LeetCode力扣动态规划篇5 198. 打家劫舍 198. 打家劫舍 - 力扣(LeetCode) 描述 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统…

echarts 图表/SVG 图片指定位置截取

echarts 图表/SVG 图片指定位置截取 1.前期准备2.图片截取3.关于drawImage参数 需求&#xff1a;如下图所示&#xff0c;需要固定头部legend信息 1.前期准备 echarts dom渲染容器 <div :id"barchart id" class"charts" ref"barchart">&…

动态规划-----背包类问题(0-1背包与完全背包)详解

目录 什么是背包问题&#xff1f; 动态规划问题的一般解决办法&#xff1a; 0-1背包问题&#xff1a; 0 - 1背包类问题 分割等和子集&#xff1a; 完全背包问题&#xff1a; 完全背包类问题 零钱兑换II: 什么是背包问题&#xff1f; 背包问题(Knapsack problem)是一种…

jsp中设置动态时间

第一步 在head中写入meta <head><meta charset"UTF-8" http-equiv"Refresh" content"1"> </head> 第二步在head中写入函数 <head><meta charset"UTF-8" http-equiv"Refresh" content"…

Mac m1 Flink的HelloWorld

首先在官方下载Downloads | Apache Flink 下载好压缩包后解压&#xff0c;得到Flink文件夹 进入&#xff1a;cd flink-1.19.0 ls 查看里面的文件&#xff1a; 执行启动集群 ./bin/start-cluster.sh 输出显示它已经成功地启动了集群&#xff0c;并且正在启动 standalonesessio…

基于YOLOV8+Pyqt5光伏太阳能电池板目标检测系统

1、YOLOV8算法 YOLOv8 是当前效果较好的目标检测 算法&#xff0c;它的核心网络来源于 DarkNet-53&#xff0c;该网络初次在 YOLOv3[11] 中被引入&#xff0c;并深受 ResNet[12] 的影响。DarkNet-53 使用了残差机制&#xff0c;并连续添加了卷积模块来加强其功能性。 这 53 层…

AI 音乐的 “ChatGPT“ 时刻,SunoV3简介和升级教程

一句话总结 Suno AI音乐平台发布了V3版本&#xff0c;标志着AI音乐创作领域的一个重要进步&#xff0c;类似于ChatGPT在文本生成领域的影响。 关键信息点 Suno AI是专注于生成式AI音乐的平台&#xff0c;最新发布的V3版本在音质、咬字和节奏编排上有显著提升。V3版本的AI音乐…

集成百兆,千兆,万兆网络变压器等电子元器件的RJ45 Jack连接器在屏显控制系统中的应用

Hqst华轩盛(石门盈盛)电子导读&#xff1a;集成百兆&#xff0c;千兆&#xff0c;万兆网络变压器等电子元器件的RJ45 Jack连接器在屏显控制系统中的应用 一 ﹑集成百兆&#xff0c;千兆&#xff0c;万兆网络变压器等电子元器件的RJ45 Jack连接器在屏显控制系统中的应用前景 近年…

SQL Server 数据库常见提权总结

前面总结了linux和Windows的提权方式以及Mysql提权&#xff0c;这篇文章讲讲SQL Server数据库的提权。 目录 基础知识 权限判定 系统数据库 存储过程 常见系统存储过程 常见扩展存储过程 xp_cmdshell扩展存储过程提权 xp_dirtree写入文件提权 sp_oacreate提权 xp_re…

【吊打面试官系列】Redis篇 -Redis 如何做内存优化?

大家好&#xff0c;我是锋哥。今天分享关于 【Redis 如何做内存优化&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; Redis 如何做内存优化&#xff1f; 尽可能使用散列表&#xff08;hashes&#xff09;&#xff0c;散列表&#xff08;是说散列表里面存储的数…

[ESP32]:基于esp-modbus实现serial从机

[ESP32]&#xff1a;基于esp-modbus实现serial从机 开发环境&#xff1a; esp idf 5.1esp-modbus 1.0.13 使用如下指令添加组件&#xff0c;或者访问esp-modbus idf.py add-dependency "espressif/esp-modbus^1.0.13"1.mb_register_area_descriptor_t 对于slave…

PHP远程命令执行与代码执行原理利用与常见绕过总结

PHP远程命令执行与代码执行原理利用与常见绕过总结 远程命令执行 相较于SQL注入漏洞&#xff0c;远程命令执行更加少见。由于是直接执行系统命令&#xff0c;所以相较于前者此漏洞会更加危险&#xff1a; 攻击者通过远程命令执行漏洞可以直接掌控服务器攻击者可以通过存在此…

OSCP靶场--Internal

OSCP靶场–Internal 考点(CVE-2009-3103) 1.nmap扫描 ## ┌──(root㉿kali)-[~/Desktop] └─# nmap 192.168.216.40 -sV -sC -Pn --min-rate 2500 -p- Starting Nmap 7.92 ( https://nmap.org ) at 2024-03-31 07:00 EDT Nmap scan report for 192.168.216.40 Host is up…

【微服务框架】微服务简介

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…