不知道为什么,rs232串口可以正常通讯,485通讯的时候会出现乱码。

2020-01-27 11:33发布

用的STC12C5A60S2的单片机,
rs232和485是用同一个端口,用两个短路冒切换,
同一个程序,rs232通讯非常正常,但是有些板子485会出乱码,
出乱码的板子,我换过485芯片,换过485旁边的120欧姆电阻和104电容,都没有效果,还是乱码。
附上原理图,


(原文件名:1.jpg)


(原文件名:2.jpg)

不知道为什么会这样子,调了一天还没找到原因。
希望各位大哥帮帮忙啊。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
24条回答
Adrian
2020-01-29 22:24
//发送一个char
void SendData_1(unsigned char dat)
{
SBUF = dat;         //Send current data
while(!TI);         //Wait for the previous data is sent 等待前一个转换结束
TI = 0;         //Clear TI flag,清除TI标志位  
}

//发送一个字符串
void SendString_1(unsigned char *s)
{
RS_1 = 1;         //使能发送
Delay_us(1000);
while(*s)         //Check the end of the string
{
SendData_1(*s++);         //Send current char and increment string ptr
}
RS_1 = 0;         //发送完毕置位使能接收
Delay_us(1000);
}

----------------------这样100% 没问题,你那样用的话,RW切换太频繁,反应不过来的!尤其是使能发送后需要一个比较长的延时,自己试试多少合适吧。

一周热门 更多>