tianzhiying 发表于 2012-2-17 12:13:55

空闲时rs485不停发数据

还是485的问题
电路图在2楼
测试的时候
发现在空闲的时候485总是不停的发送数据
不知道是什么原因
都是0x00

程序是一个很简单的测试程序
#define uchar unsigned char
bit Rflag=0;
uchar Accedata;



/*******串口初始化******************/
void Usart_Init(void)       
{
//        AUXR=0X00;
        SCON=0X50;
        PCON=0X80;          //波特率加倍
        TMOD=0X20;
        TH1=0XF3;           //波特率2400
        TL1=0XF3;
        EA=1;
        ES=1;
        TR1=1;
}

void Usart_Send(uchar Sdata)
{
        SBUF=Sdata;
        while(!TI);
        TI=0;
}

/*******RS485发送程序***************************/
void RS485_Send(uchar Sdata)
{
        RS485=1;                       //RS485用于使能485发送和接收
                Usart_Send(Sdata);
        RS485=0;
}

void main()
{
        Usart_Init();
//        Usart_Send(0);
        RS485=0;
        while(1)
        {
//                Usart_Send(0xff);
                if(Rflag){
                        RS485_Send(Accedata);
                        Rflag=0;
                }       
        }
}

void Usatr() interrupt 4
{
        EA=0;
        if(RI){
                Rflag=1;
                Accedata=SBUF;
        }
        EA=1;
}

其中RS485就是那个控制引脚DE

wangfan0212 发表于 2012-2-17 12:29:22

120R电阻加上没?

tianzhiying 发表于 2012-2-17 12:35:54

前面接单片机串口,电路是这样子的


http://cache.amobbs.com/bbs_upload782111/files_52/ourdev_719597MQUQ79.jpg
(原文件名:未命名.jpg)

mcu_mouse 发表于 2012-2-17 12:41:50

上拉下拉电阻用的太大了。用1K的吧。

babywolf 发表于 2012-2-17 13:09:48

在while(1)中加上RS485=0试试

lovelywwei 发表于 2012-2-17 13:46:33

发送完切换为接收状态。另外上下拉你有算过吗?

tianzhiying 发表于 2012-2-17 14:35:52

回复【5楼】lovelywwei
-----------------------------------------------------------------------

我发现换了另外一个程序就可以了
不知道为什么
但是单独的测试部分是从那个程序上面复制过来的

kazenoai 发表于 2012-4-10 10:49:54

485芯片的Rx管脚加一个10K的上拉电阻试看看

gongnn 发表于 2012-4-15 17:12:31

上下拉弄反了,A上拉 B下拉。
页: [1]
查看完整版本: 空闲时rs485不停发数据