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

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

[复制链接]
  • TA的每日心情
    开心
    2024-3-13 08:53
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    2

    主题

    11

    回帖

    145

    积分

    注册会员

    积分
    145
    发表于 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群“冲”老师的电路
    生前何必久睡,死后定能长眠。
    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    8 小时前
  • 签到天数: 140 天

    [LV.7]常住居民III

    26

    主题

    1335

    回帖

    4155

    积分

    论坛元老

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

    1.png

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

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-13 08:53
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    2

    主题

    11

    回帖

    145

    积分

    注册会员

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

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

    使用道具 举报

    该用户从未签到

    551

    主题

    9428

    回帖

    1万

    积分

    管理员

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

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-13 08:53
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    2

    主题

    11

    回帖

    145

    积分

    注册会员

    积分
    145
     楼主| 发表于 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, 下载次数: 21

    原理图

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

    使用道具 举报

  • TA的每日心情
    奋斗
    8 小时前
  • 签到天数: 140 天

    [LV.7]常住居民III

    26

    主题

    1335

    回帖

    4155

    积分

    论坛元老

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

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

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-13 08:53
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    2

    主题

    11

    回帖

    145

    积分

    注册会员

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

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

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-14 16:56 , Processed in 0.068439 second(s), 55 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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