STM32HAL库 -- RS485 开发板通信(速记版)

在本章中, 我们将使用 STM32F429的串口 2  来实现两块开发板之间的 485 通信(半双工)。

RS485 简介

        485(一般称作 RS485/EIA-485)隶属于 OSI 模型物理层,是串行通讯的一种。电气特性规定为 2 线半双工,多点通信的类型。它的电气特性和 RS-232 大不一样。用缆线两端的电压差值来表示传递信号。RS485 仅规定了接受端和发送端的电气特性。它没有规定或推荐任何数据协议

 485 推荐的一主多从连接方式如图 40.1.1 所示:

        TP8485E/SP3485 可作为 RS485 的收发器,该芯片支持 3.3V~5.5V 供电,最大传输速度可达 250Kbps,支持多达 256 个节点(单位负载为 1/8 的条件下),并且支持输出短路保护。

        从上图可以看出:开发板的串口 2 通过 P7 端口设置,连接到 TP8485。注意:RS485_RE 信号,是连接在 PCF8574T 的 P6 脚上的,并没有直接连接到 MCU,需要通过 IIC 总线控制PCF8574T,从而实现对 RS485_RE 的控制RS485_RE 控制 TP8485 的收发,当 RS485_RE=0 的时候,为接收模式;当 RS485_RE=1 的时候,为发送模式

        另外,PA2,PA3 和 ETH_MDIO 和 PWM_DAC 有共用 IO,所以在使用的时候需要分时复
用,不能同时使用。

        图中的 R43 和 R44 是两个偏置电阻,用来保证总线空闲时,A、B 之间的电压差都会大于200mV(逻辑 1)。从而避免因总线空闲时因 A、B 压差不稳定,可能出现的乱码。

        最后,我们用 2 根导线将两个开发板 RS485 端子的 A 和 A,B 和 B 连接起来。

RS485 的 HAL 库驱动

由于 485 实际上是串口通讯,我们参照串口实验一节使用类似的 HAL 库驱动即可。

RS485 配置步骤

1)使能串口和 GPIO 口时钟

        本实验用到 USART2 串口,使用 PA2 和 PA3 作为串口的 TX 和 RX 脚,因此需要先使能 USART2 和 GPIOA 时钟。

2) 串口参数初始化(波特率、字长、奇偶校验等)

        串口初始化函数 HAL_UART_Init 完成对串口参数初始化。

3)GPIO 模式设置(速度,上下拉,复用功能等)

4)开启串口相关中断,配置串口中断优先级。

        使用 HAL_UART_Receive_IT 函数开启串口中断接收,并设置接收 buffer 及其长度。通过 HAL_NVIC_EnableIRQ 函数使能串口中断,通过 HAL_NVIC_SetPriority 函数设置中断优先级。

5)编写中断服务函数

         串口 2中断服务函数为:USART2_IRQHandler。

6)串口数据接收和发送

        通过读写 USART_DR 寄存器,完成串口数据的接收和发送,HAL 库也给我们提供了:HAL_UART_Receive 和 HAL_UART_Transmit 两个函数用于串口数据的接收和发送。

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

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

相关文章

CVPR 2024最佳论文分享:文本到图像生成的丰富人类反馈

CVPR(Conference on Computer Vision and Pattern Recognition)是计算机视觉领域最有影响力的会议之一,主要方向包括图像和视频处理、目标检测与识别、三维视觉等。近期,CVPR 2024公布了最佳论文。共有10篇论文获奖,其…

如何实现智慧农田的精准灌溉

如何实现智慧农田的精准灌溉 智慧农田的精准灌溉是现代农业技术发展的重要组成部分,它集成了物联网、大数据分析、人工智能以及现代水利技术,旨在通过实时监测土壤湿度、气象条件及作物生长状况,实现水资源的高效利用和作物产量、品质的双重…

解决2021版IDEA新建没有Server问题

2024-06-27可用 我是这样解决的,仅供参考 IDEA软件是2021.1.1版 导入Tomcat的Servlet包,就解决了,详见下图操作 1. 打开项目结构 2. 选Libraries 3. 找到Tomcat安装路径 比如我安装在了“C:\soft”目录,就去这个目录找 然后记得…

基于Cardinal的AWD攻防平台搭建与使用以及基于docker的题目环境部署

关于 CTF 靶场的搭建与完善勇师傅前面已经总结过了,参考: CTF靶场搭建及Web赛题制作与终端docker环境部署_ctfoj搭建-CSDN博客 基于H1ve一分钟搭好CTF靶场-CSDN博客 Nginx首页修改及使用Nginx实现端口转发_nginx 修改欢迎首页-CSDN博客 关于H1ve导…

Spring Boot中如何实现批量处理

Spring Boot中如何实现批量处理 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们来聊聊Spring Boot中如何实现批量处理。在实际开发中,我们经…

cPanel的SSL证书续订方法

在现代互联网环境中,SSL证书对于保障网站的安全和数据加密至关重要。下面我们将介绍如何在cPanel中续订SSL证书,并适时结合Hostease服务器的优势,帮助您更好地理解和操作。 生成私钥和CSR(证书签名请求) 难易程度&am…

qt 开发笔记 json 自动转换实验

1.改用 读取json的配置文件能否想java和c#直接完成json字符串到对象的赋值呢,答案是不能? 能否用宏实现呢 比如:#define funMacro(json的键(变量名)) 变量名 jsonObject[#键].toInt(); 这个看上去是个理想的选择,如果成功了&a…

Unity中模拟抛物线(非Unity物理)

Unity中模拟抛物线非Unity物理 介绍剖析问题以及所需公式重力加速度公式:h 1/2*g*t*t(h 1/2 * g * t ^ 2)速度公式:Vt V初 a * t 主要代码总结 介绍 用Unity物理系统去做的抛物线想要控制速度或者想要细微的控制一些情况是非常困难的。所以想要脱离U…

国产CPU兆芯发展分析

国产信创CPU-兆芯CPU CPU:信创根基,国之重器 国产CPU已形成自主架构、x86、ARM三大阵营。自主架构以龙芯、申威的LoongArch、SW-64为代表;ARM阵营由鲲鹏、飞腾领军,依托ARM授权开发处理器;x86阵营则以海光、兆芯等品牌…

基于halcon的眼在手外(Eye-to-Hand)标定

前言 上个月写了一个《基于halcon的眼在手上(Eye-in-Hand)标定》的文章,通过官方的示例代码进行了简单的叙述,想学习的小伙伴可以点击链接进行学习。之前博主认为眼在手上(Eye-in-Hand)的案例更多&#xff…

leetcode209:长度最小的子数组

题目链接&#xff1a;209. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {int n nums.size();if(n 0) return 0;int end 0, start 0, sum 0, ans 0x3f3f3f3f;while…

C 语言高频面试题

常见的C语言初级面试题及详细解答 1. C语言的基本数据类型有哪些&#xff1f; 解答&#xff1a; C语言的基本数据类型包括整型&#xff08;int&#xff09;、字符型&#xff08;char&#xff09;、浮点型&#xff08;float&#xff09;、双精度浮点型&#xff08;double&…

OpenAI将终止对中国提供服务,国内模型接棒

说起来&#xff0c;OpenAI自始至终就没有对中国提供过服务&#xff0c;OpenAI官方支持的国家和地区&#xff1a;https://platform.openai.com/docs/supported-countries 列表里面没有“Chinese”的选项&#xff0c;那为什么又要明令禁止呢&#xff0c;国类IT高手们&#xff0…

批处理脚本的魔法:在Windows中嵌入脚本的艺术

&#x1f9d9;‍♂️ 批处理脚本的魔法&#xff1a;在Windows中嵌入脚本的艺术 &#x1f9d9;‍♀️ 批处理脚本&#xff08;Batch Script&#xff09;是Windows系统中的自动化脚本&#xff0c;用于执行一系列命令。在复杂的任务中&#xff0c;我们可能需要在一个批处理脚本中…

星河璀璨,uni-app 亮相华为 HDC2024 开发者大会

2024年6月21日-23日&#xff0c;第六届华为开发者大会(HDC.Together 2024)在东莞松山湖盛大举办&#xff0c;本次盛会重磅发布了万众关注的HarmonyOS NEXT。 作为鸿蒙生态的重要合作伙伴和深度参与者&#xff0c;DCloud CTO 崔红保受邀出席本次大会&#xff0c;并在鸿蒙生态伙…

day001 环境的配置与工具的安装

VMware的软件包&#xff1a;https://pan.xunlei.com/s/VNs1KShnlZalTSJtejXXzchlA1?pwdudy5# 其他的软件可以在电脑管家中下载&#xff0c;注意不要安装到c盘&#xff0c;否则影响开机速度。 虚拟机工具&#xff1a;VMware17.5.1 1&#xff0c; 2&#xff0c; 3&#xff0c…

欢乐钓鱼大师攻略:卡鱼骨、典藏鱼、藏宝图怎么钓?

《欢乐钓鱼大师》是一款以钓鱼为核心玩法的休闲模拟手游&#xff0c;通过逼真的画面和丰富的钓鱼体验吸引了大量玩家。本文将为你详细介绍这款游戏的亮点、常见问题以及一些实用的游戏技巧&#xff0c;帮助你在《欢乐钓鱼大师》中获得更愉快的游戏体验。 辅助工具 1. 辅助工具…

内网安全【5】隧道搭建

1.内网穿透工具 Ngrok Frp Spp Nps EW(停更) 一共是这五个 优点&#xff1a;穿透加密数据&#xff0c;中间平台&#xff0c;防追踪&#xff0c;解决网络问题 Sunny-Ngrok内网转发内网穿透 - 国内内网映射服务器 https://github.com/esrrhs/spp https://github.com/fatedie…

计算机网络之数据通信原理(中)

上节内容传送口&#xff1a;数据通信原理基础 1.数据传输方式 1.1并行传输 并行传输: 字符编码的各个比特同时传输 特点&#xff1a; 一个比特时间内可传输一个字符&#xff0c;传输速度快&#xff0c;每个比特传输要求一个单独的信道支持&#xff0c;通信成本高&#xf…

Redis数据类型详解:内存中的数据结构艺术

Redis是一个高性能的键值存储数据库&#xff0c;以其出色的读写速度和丰富的数据结构支持而广受欢迎。在Redis中&#xff0c;数据以键值对的形式存储&#xff0c;其中键是唯一的&#xff0c;而值则可以是多种数据类型。本文将详细探讨Redis支持的数据类型&#xff0c;以及每种数…