13_STM32Cubeide开发_RS485总线驱动

本文介绍了如何使用STM32CubeIDE进行RS485通信的开发,包括485总线和硬件电路的介绍、cubeMX配置、RS485驱动程序的编写。在硬件层面,通过SP3485电平转换芯片连接MCU的串口,发送数据时设置RE为高电平,发送完成后切换为低电平。在软件上,利用串口中断接收数据,实验需要至少两个485设备进行通信,并提及工业中常使用Modbus协议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、485总线和硬件电路

在这里插入图片描述
典型的串行通讯标准是RS232和RS485,它们定义了电压,阻抗等,但不对软件协议给予定义。RS-485总线标准规定了总线接口的电气特性标准即对于2个逻辑状态的定义:正电平在+2V~+6V之间,表示一个逻辑状态;负电平在-2V~-6V之间,则表示另一个逻辑状态;数字信号采用差分传输方式,能够有效减少噪声信号的干扰。
RS485总线,传输距离长、抗干扰性能强、稳定性好。已经广泛的应用于工业设备的使用中。
在这里插入图片描述
通常使用AB双绞线连接,复杂场合可以使用带屏蔽层的双绞线。
在这里插入图片描述
MCU本身不具有485总线的通讯标准。但是可以采用中继转换芯片SP3485,将串口信号和485的信号做相应的电平转换。
在这里插入图片描述
实际中的具体电路(共占用MCU的3个IO口),其中有两根是串口通讯的RX和TX引脚。
还有一根是RE,高电平时,向外发送数据;低电平时,接收数据。

RS485通信

  • 在软件程序层面,其实利用的就是单片机的串口功能,发送和接收数据。
  • 在硬件层面,就是多加了1个电平转换芯片。将串口的ttl电平转换为了485使用的电平。

二、cubeMX配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、RS485驱动程序

最重要的逻辑:
当MCU往外发数据时候,RE=1,
当MCU发送完数据时候,RE=0,
任意空闲状态,RE=0

/*
 * rs485.c
 */

#include "rs485.h"
#include "../usart/usart.h"
#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值