RS485通信模块使用及代码【简】

1、485模块简介

485,通信接口的远程称重数据采集方法,在要求通信距离为几十米到上千米时,广泛采用 RS-485 串行总线标准。RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。

大致意思:

具有rs485硬件接口,并且采用协议进行数据传输的一种设备。

①从某宝的RS485截图

②作用:这个模块主要可用来进行MCU与MCU之间的通信,支持一个主机多个从机(串口通信一对一), 并支持MODBUS通信协议。

2、连接方式

这里以STM32F103C8T6最小系统板为例,电源可以接3.3/5V。连接方式如下图。

 实现两个单片机之间的通讯需要两个485模块,通常情况下RE与DE要连接在一起,具体解释请参考这位博主的文章,很详细。

(36条消息) RS485模块的介绍及引脚连线说明_6柒的博客-CSDN博客_485模块https://blog.csdn.net/weixin_44035986/article/details/116792884

       

连接实物方式如下,至于RE-DE共线可以用面包板(个人觉得好接一点)

                        ​​​​​​​        

 3、代码

①485初始化及发送数据代码

#define RS485_RX_EN PAout(12)
void RS485_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStruct;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能PA外设时钟
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_12;	//初始化引脚
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;	//输出模式
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_2MHz;	//2MHZ
	GPIO_Init(GPIOA, &GPIO_InitStruct);				//根据GPIO_InitStruct初始化
	Usart3_Init(115200);	 //串口3初始化
	RS485_RX_EN = 0;//默认进入接收模式
}

void RS485_SendData(unsigned char *str, unsigned short len)
{
	RS485_RX_EN = 1;	//进入发送模式
	while(len--)		
	{
	while(USART_GetFlagStatus(USART3,USART_FLAG_TC) == RESET);//等待上一个字节发送完成
		USART_SendData(USART3,*str++);						//发送一个字节
	}
	while(USART_GetFlagStatus(USART3,USART_FLAG_TC) == RESET);//等待最后一个字节发送完成
	RS485_RX_EN = 0;	//进入接收模式
}

物联沃分享整理
物联沃-IOTWORD物联网 » RS485通信模块使用及代码【简】

发表评论