标题: 关于RS485通信不正常问题 [打印本页]

作者: hbkjdxsh    时间: 2022-10-11 11:18
标题: 关于RS485通信不正常问题
做了一个STM32的开发板和51开发板用于RS485通信,目前经过检验感觉硬件方面没什么问题,检验方法是通过简单编程使stm32发送一个字节数据给51并成功接收,是51发送一个字节数据给stm32也成功接受了;目前存在的问题是在执行完整的通讯协议时,stm32发送地址给51单片机,51单片机能够收到地址信息,51单片机回馈给stm32主机地址信息时失败,调试过程中显示主机STM32并不能接收到51单片机的回馈信息,从机51单片机整个通讯协议在主函数的while循环中,主函数的while循环,循环几次之后就在从机接收地址的 while(RI == 0)  {;}这个函数里面出不来了,;主机放在定时器中断函数中,每秒发生中断。有没有大神能提提建议,我可以从哪方面下手调试

作者: yzwzfyz    时间: 2022-10-11 13:36
让51发1,2,3,4……,看32能还收全。
能收全:则51存在地址未发出的可能。
收不全:则32存在丢失数据的可能。

作者: youhm    时间: 2022-10-11 14:28
RS485要注意收发切换的控制,建议还是先用电脑单独对两个板子调试,都正常了再两个板子联机电脑同时监测通讯报文。
作者: hbkjdxsh    时间: 2022-10-12 09:25
yzwzfyz 发表于 2022-10-11 13:36
让51发1,2,3,4……,看32能还收全。
能收全:则51存在地址未发出的可能。
收不全:则32存在丢失数据的 ...

直接发1 2 3 4 5   51都能收到,但是51回馈的话 32收不到
作者: hbkjdxsh    时间: 2022-10-12 09:27
youhm 发表于 2022-10-11 14:28
RS485要注意收发切换的控制,建议还是先用电脑单独对两个板子调试,都正常了再两个板子联机电脑同时监测通 ...

目前就是这么进行调试的,问题就是不论是STM32发给51,还是51发给32,都能正常发过去,但是都没能回馈回来
作者: youhm    时间: 2022-10-12 10:41
hbkjdxsh 发表于 2022-10-12 09:27
目前就是这么进行调试的,问题就是不论是STM32发给51,还是51发给32,都能正常发过去,但是都没能回馈回 ...

你先不要管协议了,两个单片机程序里先改成收到什么原样返回,看是不是接收不完整,还是没发送或发送不完整,电脑串口同时监测应该能看出大致问题,如果有示波器可以监视收发切换控制信号和收发数据是否匹配。
作者: lsgzq    时间: 2022-10-12 22:11
单片机串口通信如果使用485芯片,就要注意收发切换的问题,因为485通信是单工通信,收的时候不能发,发的时候不能收,要通过单片机的输出脚去控制芯片的收发转换,这样才能实现完整的通信。
作者: Hephaestus    时间: 2022-10-12 22:29
从主楼的描述来看,楼主根本就没考虑过收发转换问题,两边都是发送能正确接收真是见鬼了。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1