找回密码
 立即注册
查看: 1044|回复: 6

关于P1.0,P1.0端口做485通讯的问题

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-03-13 08:53:25

2

主题

11

回帖

155

积分

注册会员

积分
155
发表于 2023-6-13 16:50:16 | 显示全部楼层 |阅读模式
本帖最后由 老高 于 2023-6-13 16:51 编辑

本人系刚转STC单片机的新手。几个月前买了STC大学生计划试验箱,跟范例做了一点基本了解。本月需要用标题中的芯片做个项目,其中一个功能模块用串口2P1.0,P1.1接485芯片做通讯,并由跳线接到另一个232芯片做通讯,232和485电路也是此前在别的单片机平台用过多次的,均能正常收发,但是移植到STC系统里出现一个奇怪的问题,用232进行通讯,收发完全正常,不管是TTL还是标准的232通讯,都没问题,切换到485就只能发送,不能接收正确的数据,反反复复查阅了能找到的范例,也没解决这个问题。在此之前也在STC的QQ群交流了一下,还是没得到解决,特来此请教各位老师指点迷津。

用我自己的电路和QQ群“冲”老师的电路都做了测试,还是只能收不能发

这是我的电路

这是我的电路

QQ群“冲”老师的电路

QQ群“冲”老师的电路
生前何必久睡,死后定能长眠。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2023-6-13 18:48:58 | 显示全部楼层
使用QQ群“冲”老师的电路,或者规格书里的参考电路:

1.png

/RE, DE是485芯片的收发控制脚,这两个脚设置低电平处于接收模式,高电平处于发送模式。
使用过程中默认将这两个脚拉低,让485芯片处于接收模式。
需要发送时拉高,发送完成后再拉低。
因为什么时候发送是可控的,什么时候接收是不可控的,所以默认要一直处于接收状态。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-03-13 08:53:25

2

主题

11

回帖

155

积分

注册会员

积分
155
发表于 2023-6-13 20:19:16 | 显示全部楼层
本帖最后由 老高 于 2023-6-13 20:34 编辑
乘风*** 发表于 2023-6-13 18:48
使用QQ群“冲”老师的电路,或者规格书里的参考电路:

用示波器看了RE/DE口,不发送的时候是低电平。但是485还是收不到正确的数据。是不是因为485不能全双工,所以用网站串口2范例不能有有效收发,能否提供一个半双工的范例参考一下?
生前何必久睡,死后定能长眠。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2023-6-13 21:33:11 | 显示全部楼层
把你完整原理图的PDF发上来
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-03-13 08:53:25

2

主题

11

回帖

155

积分

注册会员

积分
155
发表于 2023-6-14 08:31:50 | 显示全部楼层
本帖最后由 老高 于 2023-6-14 08:37 编辑
神*** 发表于 2023-6-13 21:33
把你完整原理图的PDF发上来

通讯原理图。一片232芯片,输出标准232电平,另一半输出TTL电平。MCU的RX口通过2个二极管扩展分别给232和485作为输入,输入=0时下拉;=1时二极管截止,上拉电阻电平赋予RX口1,完成数据接收。测试中发现接收有问题,将二极管D9,D10和电阻R74全部去掉,只接485的RO口,还是一样收不到正确的数据
无标题.png

Schematic Prints.pdf

80.55 KB, 下载次数: 65

原理图

生前何必久睡,死后定能长眠。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6843

积分

论坛元老

积分
6843
发表于 2023-6-14 09:12:19 | 显示全部楼层
老*** 发表于 2023-6-14 08:31
通讯原理图。一片232芯片,输出标准232电平,另一半输出TTL电平。MCU的RX口通过2个二极管扩展分别给232和4 ...

接收时用示波器测一下芯片第5脚这端是否有信号
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-03-13 08:53:25

2

主题

11

回帖

155

积分

注册会员

积分
155
发表于 2023-6-14 11:15:27 | 显示全部楼层
乘风*** 发表于 2023-6-14 09:12
接收时用示波器测一下芯片第5脚这端是否有信号

搞定了,还是对芯片缺乏了解。直接拷贝实验板的范例进行测试,范例是全双工模式,用232测试是没问题的,用485就会出现问题,485只能做到半双工。修改程序,自定义通讯协议,或是接收到最后一个字节,计时超时或判断结束码,完成数据接收再发送,就没问题了。

谢谢大家在论坛以及QQ群的支持。
生前何必久睡,死后定能长眠。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 20:25 , Processed in 0.133358 second(s), 94 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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