OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5644|回复: 7

RS485通信,使能成发送模式时,调试出现了奇怪问题,想不通啊想不通,发帖看看有没有遇到此类问题的。。。。

[复制链接]

6

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2015-5-7
在线时间
20 小时
发表于 2015-8-18 19:31:49 | 显示全部楼层 |阅读模式
5金钱
上位机和板子进行485通信,接收在中断中接收,发送没使用中断。
现在问题是:我要给上位机发一帧数据,进行硬件调试的,程序才走到把485使能为发送模式(程序还没走到我发送数据的函数,也就是说我还没给上位机发数据呢),这个时候如果我用串口调试助手给下位机发数据的话,串口调试助手中居然会收到一组数据。。。。拿示波器测了下,发现我485芯片上使能端一直是高(使能为发送),RX一直是低,TX一直是高,RX和TX并没有高低电平变化啊,而且我现在是使能为发送,也不可能接收上位机发来的数据啊。。。调试几天了,不知道是什么鬼?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

401

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1769
金钱
1769
注册时间
2015-6-11
在线时间
313 小时
发表于 2015-8-18 21:33:18 | 显示全部楼层
走到不代表执行,需要走到下一句这句话才算执行了。 至于后面那个我也不清楚,需要测试过才行。
回复

使用道具 举报

6

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2015-5-7
在线时间
20 小时
 楼主| 发表于 2015-8-18 22:05:22 | 显示全部楼层
回复【2楼】zc123:
---------------------------------
恩,是我上面的表达有问题,是已经执行了使能为发送那行代码,还没执行到我的发送函数不过。。多谢啦。。
回复

使用道具 举报

3

主题

401

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1769
金钱
1769
注册时间
2015-6-11
在线时间
313 小时
发表于 2015-8-18 22:59:16 | 显示全部楼层
回复【3楼】RYOMARYOMA:
---------------------------------
问下,从上面看,接收是正常的,但下位机在设置为TX发送数据正常吗,如果接收发送都有效那么十分怀疑是RS485转换芯片故障(接收发送都同时有效),导致RS485变成RS232了(直连),你换个芯片试试,应该与软件的关联不大
回复

使用道具 举报

10

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2015-1-17
在线时间
16 小时
发表于 2015-8-19 13:23:29 | 显示全部楼层
我调试MAX485的时候.
发现必须在使能发送/接收后延迟1ms再串口发送数据,不然的话MAX485反应不过来.
回复

使用道具 举报

6

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2015-5-7
在线时间
20 小时
 楼主| 发表于 2015-8-19 13:56:56 | 显示全部楼层
回复【4楼】zc123:
---------------------------------
正常的接收和发送状态下,我这边的接收和发送都是正常的,就是说,如果我下位机现在是接收状态,这时上位机给我发一侦数据,是可以正确接收,正确接收一侦数据后,我再置成发送状态,也是能给上位机正确发送回去。
但在我置成发送状态(还没开始给上位机发数据呢),这时上位机又给我发数据的的话(测试了下,其实下位机并没接收这些数据),上位机居然能收到一些数(不是下位机发的数)。
回复

使用道具 举报

6

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2015-5-7
在线时间
20 小时
 楼主| 发表于 2015-8-19 13:58:46 | 显示全部楼层
回复【5楼】叶萌球:
---------------------------------
恩,使能成发送或接收时是要延迟一下,我也延迟了。
回复

使用道具 举报

3

主题

401

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1769
金钱
1769
注册时间
2015-6-11
在线时间
313 小时
发表于 2015-8-19 15:24:13 | 显示全部楼层
回复【7楼】RYOMARYOMA:
---------------------------------
因为ARM芯片进行RS485通讯是通过MAX485芯片的使能端限制的,而ARM本身是工作在RS232模式,也就是如果直接连通,接收和发送时可以同时进行的(ARM芯片本身支持),所以我才让你检查下是不是MAX485芯片出错导致使能端设置无效了。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-16 21:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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