老高 发表于 2023-6-13 16:50:16

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

本帖最后由 老高 于 2023-6-13 16:51 编辑

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

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

乘风飞扬 发表于 2023-6-13 18:48:58

使用QQ群“冲”老师的电路,或者规格书里的参考电路:



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

老高 发表于 2023-6-13 20:19:16

本帖最后由 老高 于 2023-6-13 20:34 编辑

乘风飞扬 发表于 2023-6-13 18:48
使用QQ群“冲”老师的电路,或者规格书里的参考电路:



用示波器看了RE/DE口,不发送的时候是低电平。但是485还是收不到正确的数据。是不是因为485不能全双工,所以用网站串口2范例不能有有效收发,能否提供一个半双工的范例参考一下?

神农鼎 发表于 2023-6-13 21:33:11

把你完整原理图的PDF发上来

老高 发表于 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口,还是一样收不到正确的数据

乘风飞扬 发表于 2023-6-14 09:12:19

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

接收时用示波器测一下芯片第5脚这端是否有信号

老高 发表于 2023-6-14 11:15:27

乘风飞扬 发表于 2023-6-14 09:12
接收时用示波器测一下芯片第5脚这端是否有信号

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

谢谢大家在论坛以及QQ群的支持。
页: [1]
查看完整版本: 关于P1.0,P1.0端口做485通讯的问题