打印

使用RS232-485模块遇到的诡异问题

[复制链接]
4625|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pluto55|  楼主 | 2011-8-8 17:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
背景:想通过单片机的RS232口转成485电平控制5个下位机,用的是外接电源供电的RS232-485转换模块,
     外接电源是12V,来自单片机电源系统,即不存在共地的问题
问题:
     1.我用串口调试助手直接向下位机发命令,下位机可以正确执行,而且可以正确回复
     2.我用单片机的串口向下位机发命令,    下位机可以正确执行,但是回复不对。
        比如应该回1B 04 01 FF FF 0A,它会回复 9F 55 DF FF AF等
     3.我用的232-485转换模块和PC机只有RX,TX,GND相连
       和单片机也只有RX,TX,GND相连

有没有人遇到过类似的问题,谢谢      

补充:问题的表层解决:
     
    之前上位232和下位485设置的是2400波特率,我都改成9600后接收也变正常了,问题更奇怪了

相关帖子

沙发
chunyang| | 2011-8-8 22:24 | 只看该作者
给出你的485接口电路,另外终端电阻要接上,不过楼主的问题更像是软件编制的问题。

使用特权

评论回复
板凳
fangmin041| | 2011-8-9 12:57 | 只看该作者
没碰到过这样的问题,但弄过一次232,真把弄晕了,原来是调试软件有问题,那个STC官方调试软件,有效验行,没有校验有时行,有时不行,这个至今没搞清什么原因,而丁丁的那个SSCOM32没有效验行,有效验不行,晕啊

使用特权

评论回复
地板
haif_cao| | 2011-8-9 13:26 | 只看该作者
我觉得应该是单片机设置的问题

使用特权

评论回复
5
pluto55|  楼主 | 2011-8-9 14:46 | 只看该作者
2# chunyang
就是最典型的485接口电路,终端电阻也加上了,问题难以理解的地方就是PC机可以正确接收,而单片机不能正确接收

使用特权

评论回复
6
救火车| | 2011-8-10 09:58 | 只看该作者
STM32芯片,8M的晶振,在2400波特率时,波特率有没有误差?

使用特权

评论回复
7
chunyang| | 2011-8-10 23:59 | 只看该作者
2# chunyang
就是最典型的485接口电路,终端电阻也加上了,问题难以理解的地方就是PC机可以正确接收,而单片机不能正确接收
pluto55 发表于 2011-8-9 14:46


这正说明你的MCU程序有问题。

使用特权

评论回复
8
corset| | 2011-8-11 14:09 | 只看该作者
是不是波特率不对啊

使用特权

评论回复
9
zwy65182899| | 2011-8-11 14:38 | 只看该作者
如果调不出来,我有485转232模块,是有源的。可能价格贵了点,但其他还好。。。如果要帮助请拨13251475212

使用特权

评论回复
10
ningling_21| | 2011-8-11 21:43 | 只看该作者
很有可能是波特率的问题...

使用特权

评论回复
11
DownCloud| | 2011-8-12 15:02 | 只看该作者
pc可以通讯,回复正常.可能是单片机的软件问题(接收部分)

使用特权

评论回复
12
救火车| | 2011-8-15 10:49 | 只看该作者
谁对STM32熟悉?
STM32芯片,8M的晶振,在2400波特率时,波特率有没有误差?

使用特权

评论回复
13
huangqi412| | 2011-8-16 08:35 | 只看该作者
LS,晶振频率不等于串口外设模块的频率,32位MCU一般时钟模块都有PLL,外设模块有分频系数之类东东。 应该自己先确定时钟模块出来的主频再根据公式计算波特率,

使用特权

评论回复
14
joyme| | 2011-8-17 09:10 | 只看该作者
一般串口波特率建议用11.592M这种不是整数的晶振误差比较小,内部的分、倍频都以2的幂为基数,用整数的晶振误差反而大一些

使用特权

评论回复
15
ningling_21| | 2011-8-17 14:25 | 只看该作者
无源的485转RS232模块要通过电脑串口供电,单片机开发板的串口普遍没有给模块供电的功能...

使用特权

评论回复
16
dghidt| | 2011-8-17 16:12 | 只看该作者
你在程序里面把接收和发送的切换时间延长一点呢。。。。

使用特权

评论回复
17
handlike| | 2011-8-18 13:43 | 只看该作者
485时钟控制端时序上的问题。速度提高后,相当于发送转接收后中间空档延长了,使发送方、接收方都能稳定下来。通俗一点讲就是485芯片2、3脚置高,复位时序上的问题。

使用特权

评论回复
18
lbh0270| | 2011-8-18 16:21 | 只看该作者
接口电平不对

使用特权

评论回复
19
gx_huang| | 2011-8-19 21:30 | 只看该作者
用示波器测试串口的波形,很容易分析出原因的。
调试程序,和调试硬件电路一样,也是需要仪器测试的。

使用特权

评论回复
20
ldk060| | 2011-8-21 17:57 | 只看该作者
应该是设置问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

88

帖子

2

粉丝