空闲时rs485不停发数据

2020-02-04 09:12发布

还是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
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
wangfan0212
1楼-- · 2020-02-04 12:15
 精彩回答 2  元偷偷看……
tianzhiying
2楼-- · 2020-02-04 17:12
前面接单片机串口,电路是这样子的



(原文件名:未命名.jpg)
mcu_mouse
3楼-- · 2020-02-04 22:37
上拉下拉电阻用的太大了。用1K的吧。
babywolf
4楼-- · 2020-02-05 01:03
在while(1)中加上RS485=0试试
lovelywwei
5楼-- · 2020-02-05 03:59
发送完切换为接收状态。另外上下拉你有算过吗?
tianzhiying
6楼-- · 2020-02-05 06:03
 精彩回答 2  元偷偷看……

一周热门 更多>