完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,最近遇到一个问题,还望高手给予解惑。我用M0516为cpu做了一个主站,用来给一个成型的从站发送命令,485介质通信,用一个io口连接485芯片的RE和DE端来控制发送和接受的切换,开始设置为发送状态,发送一串报文给从站,经过监测,发送的报文没有问题,然后由io口切换成接收状态,按理说从站会反馈一串报文回来,但是主站却收不到任何报文,也没能监测到从站发回的报文。从站没有问题,主站发出的报文也没有问题,因为我用模拟上位机对从站发出相同的报文,从站是有回应的,至于为什么这里主站收不到,我就怀疑是从站回应的太快,导致我还没来得及将485从发送状态切换成接收状态,自然也就收不到从站的回应,而监测不到从站发出的回应大概是因为这时主站的485还处于发送状态。于是我想到可能是发送和接受切换的不够快,于是我就加大主站主频,已经加到48Mhz了,按理说,软件上控制io口切换发送和接受应该是不耽误时间的,我也是发完立马切换成接受,可是依然不行,不知道为什么,还希望知道的大侠能帮忙解惑,多谢了。
|
|
相关推荐
1个回答
|
|
您的问题可能是由于RS485通信时的接收器使能问题导致的。
在RS485通信中,发送器和接收器是共享同一条线路的。在发送数据之前,RE和DE引脚通常被置高,使发送器(enable)和接收器(disable)失效。在数据发送完成之后,RE和DE引脚需要切换为接收状态,这样接收器才能够接收数据。 由于您能够成功发送数据,那么你的硬件和软件控制代码应该是正确的,否则你不可能发送成功。因此,我建议你检查RE和DE引脚在切换到接收模式时是否被正确的使能(disable),这是接收数据的关键。您可以通过使用示波器或内部计时器来检查485收发芯片的使能状态。 您也需要确保您的从站回复符合RS485标准,即RS485标准规定在一个字节发送完成之后,接受器会在一个时间窗口内自动转换为接收模式。这个时间窗口称为bus_free_delay(总线空闲延迟)。 如果您仍然无法接收从站的回复,请仔细检查RE和DE引脚以及信号线路的连接,还需检查从站的回复格式是否正确。 希望这些建议能帮助您解决问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
636 浏览 0 评论
1076 浏览 1 评论
2446 浏览 5 评论
2773 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2604 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
628浏览 9评论
624浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
743浏览 6评论
600浏览 5评论
647浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-2 16:27 , Processed in 1.035023 second(s), Total 79, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号