如图,是我的 485通讯电路 ,单片机用的是 meiga8,串口接收中断方式,发送用查询方式 ,板子通过 一块外购的 485转 232模块 与 pc机链接,用串口助手调试, 串口助手发送数据,mega8中断方式 接收到5个数据后,向 pc机返回原数据
例如:pc机发送 :01 02 03 04 05,mega8接收成功后,返回01 02 03 04 05 ,
程序在 proteus上测试是没有问题的,但一烧写到实物上,实际测试,发现如下问题
1、mega8返回的数据 错误,
2、不管串助手发送了几个字节, 都会接收到返回的数据,
3、串口接收到的 的数据个数总是比 串口助手发送的多一个字节,且该字节为00
然后我做了如下测试 :
1、担心是否因为光隔选择不适合通讯,所以 不要光隔,直接把rxd,txd,485_en 链接到mega8对应端口 ,同时把 +5v与 vcc短接,1gnd与gnd短接 ,问题依旧
2、不焊接 RA1,RA2,R12,R9,R10,R11,情况不变
3、禁止mega8程序里的串口发送,只接受,发现 串口助手仍然能接收到数据,而且跟之前的接收数据是一样的,很纳闷,这些数据是怎么来的呢 ?
4、怀疑485转232模块坏掉了,换了一个新的,情况依旧!
实在是找不到问题所在,所以想请大家帮忙看看 |