找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 936|回复: 7
收起左侧

关于RS485通信不正常问题

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

使用道具 举报

ID:123289 发表于 2022-10-11 13:36 | 显示全部楼层
让51发1,2,3,4……,看32能还收全。
能收全:则51存在地址未发出的可能。
收不全:则32存在丢失数据的可能。
回复

使用道具 举报

ID:546175 发表于 2022-10-11 14:28 | 显示全部楼层
RS485要注意收发切换的控制,建议还是先用电脑单独对两个板子调试,都正常了再两个板子联机电脑同时监测通讯报文。
回复

使用道具 举报

ID:1037582 发表于 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收不到
回复

使用道具 举报

ID:1037582 发表于 2022-10-12 09:27 | 显示全部楼层
youhm 发表于 2022-10-11 14:28
RS485要注意收发切换的控制,建议还是先用电脑单独对两个板子调试,都正常了再两个板子联机电脑同时监测通 ...

目前就是这么进行调试的,问题就是不论是STM32发给51,还是51发给32,都能正常发过去,但是都没能回馈回来
回复

使用道具 举报

ID:546175 发表于 2022-10-12 10:41 | 显示全部楼层
hbkjdxsh 发表于 2022-10-12 09:27
目前就是这么进行调试的,问题就是不论是STM32发给51,还是51发给32,都能正常发过去,但是都没能回馈回 ...

你先不要管协议了,两个单片机程序里先改成收到什么原样返回,看是不是接收不完整,还是没发送或发送不完整,电脑串口同时监测应该能看出大致问题,如果有示波器可以监视收发切换控制信号和收发数据是否匹配。
回复

使用道具 举报

ID:593706 发表于 2022-10-12 22:11 | 显示全部楼层
单片机串口通信如果使用485芯片,就要注意收发切换的问题,因为485通信是单工通信,收的时候不能发,发的时候不能收,要通过单片机的输出脚去控制芯片的收发转换,这样才能实现完整的通信。
回复

使用道具 举报

ID:883242 发表于 2022-10-12 22:29 | 显示全部楼层
从主楼的描述来看,楼主根本就没考虑过收发转换问题,两边都是发送能正确接收真是见鬼了。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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