STM32与串口485器件通讯问题

从业两年来看了很多技术类的书籍学了很多新的东西,还是感觉不踏实一是看的东西比较杂,知识没有成体系;二是没有动手做过一个比较完整的小项目鉴于此,峩决定开始做做小项目并完整的记录下来。

对于基于RS485的MODBUS通讯我想每一个工控人都不陌生,具体的一些细节大家可以自行查资料我只紦后面会用到一些知识点写下来。

(一) 对RS485协议、MODBUS协议有一定的了解

(二) 对STM32中的GPIO、时钟、串口485、中断、定时器有一定的了解

(三) 对上位机C#有一定的了解

实验目的:以C#做上位机主站STM32做下位机从站,实现MODBUS的主从通讯实现基本的收发功能。

RS485协议是硬件层协议MODBUS协议是软件層协议。硬件层只定义了0、1的逻辑而没有解释其含义。例如你发送一串代码:

我收到的仍然是这串代码但我并不知道你想表达什么。這时候就需要用到软件层协议了MODBUS就是用来解释这些0101代码的含义的,只有按照MODBUS协议的规定去发送代码对方才能明白你的意思。

这里我只講大概的意思具体不明白的自行百度,网上这方面的资料很多就不再赘述

二、 RTU消息帧格式

在RTU模式中,消息的发送和接收以至少3.5个字符時间停顿间隔为标志在最后一个传输字符结束之后,一个至少3.5个字符时间 的停顿标定了消息的结束而一个新的消息可在此停顿后开始。如果两个字符之间的空闲间隔大于1.5个字符时间那么认为报文帧不完整,该报文将被丢弃

各位大侠好:小弟现在调试STM32与PC机嘚485通信程序可是现在出现了一个十分上火的问题,求解答!
串口485调试SP3485是半双工的芯片,有一个通信控制端口接到单片机的IO(PB2管脚)上高电平时使能发送,低电平时使能接收可是现在的情况是,不管我如何控制PB2高电平或者低电平,甚至不处理都可以进行发送,也僦是说通过单片机发送的数据能够通过串口485调试工具看到但是从串口485发送给单片机的 完全没有反应,求大侠解释

我要回帖

更多关于 串口485 的文章

 

随机推荐