OpenEdv-开源电子网

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

485通讯出现莫名其妙的问题

[复制链接]

10

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2013-4-24
在线时间
4 小时
发表于 2013-5-16 12:55:13 | 显示全部楼层 |阅读模式

我的485是用来和上位机软件通讯的,
1、如果我用公司调试用的上位机软件(带有一定功能的)发送数据后单片机能接收到数据并执行相应的函数,示波器测得单片机发送出了回复但是上位机打开的串口监听没有数据显示。

2、但是用串口调试助手模仿指令发送的时候能被单片机识别并响应。一切都很正常。

3、还有一个细节,当单片机返回的数据长度大于0x24的时候一切都正常,MCU能读能写,当长度小于0x22时就会出现状况1中的描述。

莫名其妙的问题,两个种情况下程序是一模一样的。

这种情况下是哪的问题啊?哪位高手遇到过。

牛逼死了,牛还活着吗?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2013-5-16
在线时间
2 小时
发表于 2013-5-16 14:55:11 | 显示全部楼层

还有种可能,是不是跟上位机软件设定的串口工作模式有关?比如buffer满了才通知软件?数据数量少,buffer未满,所以上位机软件未得到数据;而串口监听软件设置的串口模式模式不一样。只是推测供楼主参考...
                                        

 

回复 支持 1 反对 0

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-16 14:18:23 | 显示全部楼层
回复【楼主位】cortexM3:
---------------------------------
是不是你的上位机软件有限制或者有bug??
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2013-4-24
在线时间
4 小时
 楼主| 发表于 2013-5-16 14:38:06 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
这个我也考虑了,用以前的设备和这个软件通讯没有问题,用了串口监听软件,命令和回复数据都是一样的 可就是不能通过485传输,难道max485还能分辨数据是从公司软件还是串口调试助手发出的?
牛逼死了,牛还活着吗?
回复 支持 反对

使用道具 举报

10

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2013-4-24
在线时间
4 小时
 楼主| 发表于 2013-5-16 14:40:49 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
这个问题极有规律。
1、对回复数据长度有严格要求。
2、第一个命令的回复不能接收到,但是第二个命令的回复就能接收到。
牛逼死了,牛还活着吗?
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2013-5-16
在线时间
2 小时
发表于 2013-5-16 14:48:36 | 显示全部楼层
示波器看到单片机有回复,有没有看上位机串口信号线上数据对不?也就是回复数据完整无误地到达上位机了吗?
回复 支持 反对

使用道具 举报

10

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2013-4-24
在线时间
4 小时
 楼主| 发表于 2013-5-16 15:21:37 | 显示全部楼层
回复【5楼】jerry_wj:
---------------------------------
是485传输,信号线上不好看,刚才看了下,应该是有数据的,可是监听串口就是没有数据,上位机也无法识别。
牛逼死了,牛还活着吗?
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2013-5-16
在线时间
2 小时
发表于 2013-5-16 15:27:21 | 显示全部楼层
回复【7楼】cortexM3:
---------------------------------
上位机是串口转的485吗?如果是就看一下串口的信号线是否有回复的数据。
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2013-5-16
在线时间
2 小时
发表于 2013-5-16 15:29:06 | 显示全部楼层
上位机是PC还是PLC啊?
回复 支持 反对

使用道具 举报

10

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2013-4-24
在线时间
4 小时
 楼主| 发表于 2013-5-16 15:34:04 | 显示全部楼层
回复【9楼】jerry_wj:
---------------------------------
PC啊  公司自己开发的一个软件!
牛逼死了,牛还活着吗?
回复 支持 反对

使用道具 举报

10

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2013-4-24
在线时间
4 小时
 楼主| 发表于 2013-5-16 15:45:20 | 显示全部楼层
回复【9楼】jerry_wj:
---------------------------------
感觉是你说的上位机的问题,因为用其他指令数据长度00都是可以正常显示的,

又思考 如果确实是上位机的问题,那串口监听软件应该能显示才对,现在不能显示,猜测串口监听软件本质是监听软件而不是监听硬件端口,在编写上位机时串口控件应该有相关的刷新接收数据的方法,然后监听软件识别这个方法,再读取缓冲区中的数据。有点异想天开,不过也只能这么解释了。
牛逼死了,牛还活着吗?
回复 支持 反对

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2013-5-16 16:37:42 | 显示全部楼层
通信协议是不是一致?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-16 16:46:51 | 显示全部楼层
回复【3楼】cortexM3:
---------------------------------
485是单总线,需要不停的切换发送接收,这个是不是有考虑?另外,听说切换发送接收之间最好有点点延时。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2013-4-24
在线时间
4 小时
 楼主| 发表于 2013-5-16 16:54:24 | 显示全部楼层
回复【12楼】aleda303:
---------------------------------
回复【13楼】正点原子:
---------------------------------
回复【9楼】jerry_wj:
---------------------------------

用串口调试助手来发送命令的话是能收到的,排除了下位机硬件软件的所有问题。我猜测是下面这种情况。



传送门:http://www.amobbs.com/forum.php?mod=viewthread&tid=5534525&pid=6685221&page=1&extra=#pid6685221
牛逼死了,牛还活着吗?
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2013-5-16
在线时间
2 小时
发表于 2013-5-16 20:46:20 | 显示全部楼层
回复【14楼】cortexM3:
---------------------------------
监听软件有几种做法吧,如果是我会用过滤驱动;而钩子函数应该是比较老的技术了,新的windows不清楚是否还支持,即使支持功能应该十分受限...
目前来看应该是上位机串口控制不严谨造成的。
回复 支持 反对

使用道具 举报

10

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2013-4-24
在线时间
4 小时
 楼主| 发表于 2013-5-16 23:17:19 | 显示全部楼层
回复【15楼】jerry_wj:
---------------------------------
悲剧了,浪费我两天时间,上位机应该能改成单字节触发吧?大侠上位机很懂啊,要看点啥书啊,求指教
牛逼死了,牛还活着吗?
回复 支持 反对

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2013-5-17 09:48:03 | 显示全部楼层
回复【14楼】cortexM3:
---------------------------------
你监听收到的数据  是否是正确的 , 数据帧格式及 校验是否是对的?
回复 支持 反对

使用道具 举报

10

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2013-4-24
在线时间
4 小时
 楼主| 发表于 2013-5-17 10:42:25 | 显示全部楼层
回复【17楼】aleda303:
---------------------------------
用公司的上位机接收数据的时候 什么数据都监听不到,用串口调试助手接收数据的时候能监听到,数据帧格式和校验都是对的。
牛逼死了,牛还活着吗?
回复 支持 反对

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2013-5-17 11:34:13 | 显示全部楼层
你是用AccessPort 监控串口情况,可以同时查看 看上位机发送 的数据是否正确, 是否有返回。
回复 支持 反对

使用道具 举报

10

主题

83

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2013-4-24
在线时间
4 小时
 楼主| 发表于 2013-5-17 14:47:43 | 显示全部楼层
回复【19楼】aleda303:
---------------------------------
恩 是啊,就是这样
牛逼死了,牛还活着吗?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-20 04:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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