野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 19662|回复: 6

RS485的通讯问题

[复制链接]
发表于 2013-8-24 22:20:44 | 显示全部楼层 |阅读模式
在野火中级历程中,有一套usart2-485的历程,但是程序似乎不好用。我弄的时候,会出现:A将temp发送给B,B接收temp正确,B将temp加一后,再发送temp给A,A就接收temp不正确了(多数情况下A接收的数据为0)。(当然野火历程中有PA0引脚将sn75LBC184芯片的2和3进行相应的置位和清理,以来实现模式转换)我的硬件在 只进行一种模式时,是可以发送和接收正确的数据的
求高手指导一下我的实验要完成模式转换收发的话需要怎么调整程序,实现实验功能或者求一套表达功能和野火历程中功能相同的程序(即有发送和接收模式转化的功能)
回复

使用道具 举报

 楼主| 发表于 2013-8-25 14:33:10 | 显示全部楼层
本帖最后由 yangyankunlc 于 2013-8-25 14:37 编辑

今天我又编译了一套类似的程序,定义了一个全局变量temp,利用一个按键(野火板KEY2键),当按键按下 时,进行数据发送(发送temp进行累加)。A和B两块板子下载的时同一套程序,实验现象大致是这样的:A发送temp给B,B接收temp正确,可以连续让A发送temp给B,实验现象正确,temp会累加,现在接着让B发temp给A,数据会在B接收的基础上进行累加发送temp给A,这时也是正确的(temp会累加),而且A接收temp也是正确的。但是接着如果重新让A发送数据,则A发送temp会出现temp数据变量变成了 1 之后,又进行发送,当然B接收是正常的,也是会接收到 1 的,这是为什么呢?望高手指点指点
while(1)
{   
  if(USART2_flag)//在USART2中断中将USART2_flag置1
  {
   printf("接收到的数据为%d \r\n",temp);
   temp+=1;
   USART2_flag=0;
  }
   
  if(Key_Scan(GPIOE,GPIO_Pin_6)==0)//当按下按键时
  {
   GPIO_SetBits(GPIOA,GPIO_Pin_0); //进入发送模式
   USART_SendData(USART2, temp);  //发送数据
   while (USART_GetFlagStatus(USART2,USART_FLAG_TC) !=SET);//轮询直到发送数据完毕
   printf("发送数据成功!%d\r\n",temp); //使用串口1打印调试信息到终端
   temp+=1;
   GPIO_ResetBits(GPIOA,GPIO_Pin_0); //进入接收模式
  }
    }
这是主函数代码,其他的都是野火历程中的,没有改动,当然这次是开了中断进行接收的数据
回复 支持 反对

使用道具 举报

发表于 2013-8-25 20:14:41 | 显示全部楼层
还没搞过 485 ,有空也在 k60 上实现一下 485
回复 支持 反对

使用道具 举报

发表于 2013-8-26 20:06:26 | 显示全部楼层
估计是你板上的485芯片弄坏了,换一个试试~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-27 00:43:38 | 显示全部楼层
随风 发表于 2013-8-26 20:06
估计是你板上的485芯片弄坏了,换一个试试~

那具估计是坏了一个还是两个485接口芯片啊?如果是坏一个的话,那又是哪个坏了呢?板子A这边不正常,那是靠近A的这一端的接收芯片坏了,导致接收失败;还是靠近B端的发送芯片坏了,在B发送经过485的时候就出错了,导致A接收失败呢?(因为我没有可更换的芯片了,所有向你讨教一下,猜测讨论)
回复 支持 反对

使用道具 举报

发表于 2013-8-27 14:51:05 | 显示全部楼层
yangyankunlc 发表于 2013-8-27 00:43
那具估计是坏了一个还是两个485接口芯片啊?如果是坏一个的话,那又是哪个坏了呢?板子A这边不正常,那是 ...

我试过这种情况,把两上485都换掉就解决了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-27 16:54:31 | 显示全部楼层
随风 发表于 2013-8-27 14:51
我试过这种情况,把两上485都换掉就解决了

嗯,好的,我试试
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 07:15 , Processed in 0.030149 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表