接错线了吧你!
1,改485模块接MEGA2560的串口1,将串口0留给ARDUINO的IDE使用;如果是短距离,可靠一点的话将485与串口0共地!
2,改一下你的程序:
485是半双工的,你程序里确实加了发送和接收的切换,但其实切换前是要加延时的,至少延时一个字符的传送时间;说明白一点就是你应该在 digitalWrite(EN,LOW/HIGH);这一句前面加delay(ms);ms=?? ms=一个字符的传送时间,要根据你的BUAD算一下!
3,建议你先做单接收和单发送的程序,全部调通了再上又发送又接收的......
4,只要你不使用软串口,把速率拉上去,2400下去试485简直是浪费,你这点距离,115200都不算快的!使用软串口时,速率大于57600会现乱码!
|