关于RS485通信失败的问题(忽视了使能引脚)

server/2024/9/25 4:31:19/

问题

如图,使用485进行串口通信时,程序一直卡在接收这句。

在这里插入图片描述

解决

检查串口引脚配置都没问题,因此怀疑是硬件的原因。
在这里插入图片描述
在RS485通信中,通常需要一个使能信号来控制半双工总线上的发送和接收状态,这个信号经常被标记为:“DE(driver enable)”或“RE(receiver enable)”。

如图所示,DE1_RS485 控制信号用来切换收发器的工作模式。当MCU需要发送数据时,会通过设置DE1_RS485为高电平来启用发送驱动器,并在数据发送完毕后将其设置为低电平以禁用发送器并启用接收器。
因为RS-485接口允许半双工通信,即同一对线不能同时发送和接收数据。因此,必须在发送和接收之间切换。
因此,DE1_RS485 默认应该是低电平(接收状态),高电平时,发送状态;低电平时,接收状态。
修改程序如下,可以正常运行:

  #define RX_485 HAL_GPIO_WritePin(DE1_RS485_GPIO_Port, DE1_RS485_Pin, GPIO_PIN_RESET)#define TX_485 HAL_GPIO_WritePin(DE1_RS485_GPIO_Port, DE1_RS485_Pin, GPIO_PIN_SET)for(;;){Run_Led();TX_485;HAL_UART_Transmit_IT(&huart1, "100ask\r\n", 8);HAL_Delay(100);RX_485;while (HAL_OK != HAL_UART_Receive(&huart1, &c, 1, 100));c++;TX_485;HAL_UART_Transmit_IT(&huart1, &c, 1);HAL_Delay(100);RX_485;	  }

补充

开始时,发送很正常,不能接收,应该是因为:没有配置时,DE1_RS485 默认是高电平。


http://www.ppmy.cn/server/10374.html

相关文章

Android 使用 GeckoView 并实现 js 交互、权限交互

参考文档: geckoview版本 引入文档(有坑 下面会给出正确引入方式) 官方示例代码1 官方示例代码2 参考了两位大神的博客和demo: GeckoView js交互实现 geckoview-jsdemo 引入方式: maven {url "https://maven.…

go语言并发实战——日志收集系统(六) 编写日志收集系统客户端

上节回顾 在上一篇文章中我们介绍了编写客户端的四个步骤,分别是: 读取配置文件,寻找日志路径初始化服务根据日志路径l来收集日志将收集到的日志发送Kafka中 关于上述的内容博主画了一个思维导图(有点丑,大家勉强看看&#xff0…

联邦学习中的差分隐私与同态加密

PrimiHub一款由密码学专家团队打造的开源隐私计算平台,专注于分享数据安全、密码学、联邦学习、同态加密等隐私计算领域的技术和内容。 联邦学习中的差分隐私与同态加密 随着数据的爆炸式增长和对个人隐私保护意识的提高,隐私保护在机器学习领域中变得愈…

quick3-hydra

kali和quick3都设置NAT模式 quick3easy漏洞挖掘、越权测试、python爬虫、脚本编写、hydra 爆破、凭据收集 主机发现 netdiscover -i eth0 -r 192.168.44.193/24服务探测 nmap -sV -A -T4 -p- 192.168.44.133得到只开放了80和22端口 访问80web dirb目录扫描 找到后台http:/…

xcode c++项目设置运行时参数

在 Xcode 项目中,你可以通过配置 scheme 来指定在运行时传递的参数。以下是在 Xcode 中设置运行时参数的步骤: 打开 Xcode,并打开你的项目。在 Xcode 菜单栏中,选择 "Product" -> "Scheme" -> "E…

pnpm v9 正式发布,已停止 Node.js v16 支持

近日,pnpm v9.0.0 正式发布!带来了一系列重大更新和改进,让你的开发体验更加顺畅。现在可以通过 npm install -g pnpm 来升级 pnpm 到最新版本,接下来让我们一起看一下 pnpm v9 有哪些亮眼的新功能吧。 🔥 Node.js 支持…

STM32使用HAL库解码433遥控芯片EV1527

1、首先了解一下433遥控芯片ev1527的基本资料: 这是他编码的关键信息: 也就是说,一帧数据是:一个同步码20位内码4位按键码。 内码20位2^201048576个地址。 发送就是一帧数据接一帧数据不间断发送。 2、解码思路 从上面的帧结构…

开发同城O2O跑腿系统源码:构建高效便捷的本地服务平台教程

为了满足用户对便捷的需求,今天我们将一同探讨如何开发一个高效便捷的同城O2O跑腿系统,以构建一个功能全面、操作简单的本地服务平台。 一、确定需求和功能 在开发同城O2O跑腿系统之前,首先需要明确系统的需求和功能。用户可以通过该系统发布…