RS485主从式多机(单片机)通信,从机的地址是怎么确定或定义的?写个类似程序看看

#define NODE_ADDR 1 // 定义本节点地址
#define rcv_snd_COUNT 12 //定义接收发送缓冲区大小
unsigned char data rcv_snd_buffer[rcv_snd_COUNT];
unsigned char data *rcv_snd_pointer; //定义接收发送指针
sbit P10=P1^0;
sbit RS485E=P3^7;
void LED_light() //点亮LED
{
P10=0;
while(1);
}
void main()
{

if(*rcv_snd_pointer == '#')
{//接收的字符为结束字符
if((toint(rcv_snd_buffer[1])*10+toint(rcv_snd_buffer ))==NODE_ADDR)
{ //收到的命令帧是发送给本站的

((toint(rcv_snd_buffer[1])*10+toint(rcv_snd_buffer ))==NODE_ADDR)这句话什么意思?编译的时候出现问题

从机地址是由你从机中的软件定义的,当然要设置界面方便修改,以避免地址相同的情况。在串口中断处理程序中监听接收所有的串口消息,然后看命令中的地址是否是本机地址,是则响应命令,不是则直接丢弃改命令。追问

主要是用C语言怎么实现的呢?求解,。。。拜托!!!

追答

编译出问题应该是第二个rcv_snd_buffer后面缺了[0],这个应该是ASCII方式的通讯协议,这句是在比较地址是否是本机地址。
比较稳定的方法是:在串口中断中查找命令首字母,然后根据协议格式处理分析后面的数据,一旦不符合协议则立即丢弃,并重新开始一个完整命令的分析。收到的命令放在命令缓冲数组中,在命令处理任务中处理并反馈。

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-18
地址一般是可以任意指定的,当然得让主机知道你的地址才行
用C就是跟用串口一样,只是多了一个485的控制脚的控制即可了
第2个回答  2012-04-17
遵循协议 根据协议定

RS485主从式多机(单片机)通信,从机的地址是怎么确定或定义的?写个类似...
从机地址是由你从机中的软件定义的,当然要设置界面方便修改,以避免地址相同的情况。在串口中断处理程序中监听接收所有的串口消息,然后看命令中的地址是否是本机地址,是则响应命令,不是则直接丢弃改命令。

RS485主从式多机(单片机)通信,从机的地址是怎么确定或定义的?
RS485主从式多机(单片机)通信,从机的地址是:从机地址是随意分配只要不重合就可以了;可以拨码开关也可以程序里固化,很简单。一般是由编程者自己来确定地址,或者通过硬件来设置,硬件地址设置通过电路板上的拨码开关来选择,例如下面这个图,有两个拨码开关,两位就00、01、10、11四个地址,依次类...

如何通过RS485接口与多台设备进行通讯
首先设置主通信端口,然后在其他端口上设置不同的通信地址,并设置通信顺序,建立485总线通信网络。RS485有两线制和四线制,四线制只能实现点对点通信,目前很少使用,目前,二线制被广泛应用,这是一种总线拓扑结构,同一个直道总线最多可连接32个节点。主机发送数据时,要带有从源机的地址,所有从机...

RS485串口设备多个主从机手拉手接线方式示意图说明-modbus RTU通信
一般终端匹配采用终端电阻方法。RS-485应在总线电缆的开始和末端都并接终端电阻。终端电阻在RS-485网络中取120Ω。相当于电缆特性阻抗的电阻,因为大多数双绞线电缆特性阻抗大约在100~120Ω。这种匹配方法简单有效,但有一个缺点,匹配电阻要消耗较大功率,对于功耗限制比较严格的系统不太适合。另外一种比...

多个rs485设备怎样跟上位机通讯
485一对多的通讯是本身这套硬件具备的通讯能力,主机广播发送从机接收,在通讯时就规定好了主从。多对多的通信要通过485的集线器控制,标准RS485本身是实现不了的。多对多通信原理其实要讲一下485集线器是个什么东西,简单来说,485集线器里面是有多路串口的MCU作为控制,多主机输入时,MCU选择透传或控制...

485的RS-485多机通讯
RS-485方式构成的多机通信系统采用主从式结构:主机控制多个从机,作为从机的单片机不主动发送命令或数据,一切都由主机单片机控制;并且在一个多机系统中,只有一台主机,各台从机之间不能相互通信,即使有信息交换也必须通过主机转发。采用RS-485构成的多机通信系统原理。在总线末端接一个匹配电阻,吸收...

RS485主站与多台RS232从站之间的通讯。
485的接口是“半双工”的,即同一时间存在只能由主发送给从接收,或者从发送给主接收。在读取多个通讯设备上的数据时,应注意485在物理层就是不支持多个设备数据同时上传的,软件上面虽然可以通过地址区分开数据,但是硬件上,会对芯片产生灌电流从而烧毁设备 建议使用485转成POWERSBUS。总线上通过POWERBUS...

485如何与后台通信
RS485主从式多机通讯协议 一、数据传输协议 此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。此协议决定了每个控制器须要知道它们的...

多台变频器与PLC RS485通讯 同时并发问题
1通讯来说还是主从轮询形式,可以做个中段不停的进行收发控制,数据区地址固定,类似双口RAM的形式。使用子程序实现对单个变频器起停、频率给定、状态读取等操作。2、通讯控制的话,只能如此,除非变频器设置通讯掉线检测;3,通讯成功应该没问题的,只是出错多少的问题。祝你好运。

网络通信 | RS-485&Modbus通信协议及工作原理
RS485有两种接线方式:两线制和四线制。两线制为总线拓扑结构,同一总线上最多可以挂接32个节点。RS-485总线支持主从模式,包括点对点单从机模式和多从机模式,但不支持多主机模式。RS-485通信协议与Modbus通信协议的关系可以这样理解:RS-485是通信的“公路”,Modbus则是“交通规则”。Modbus协议定义...

相似回答