51单片机串口通信 谁能告诉我为什么发送不出去数据 但接收到

谁能告诉我为什么发送不出去数据 但接收到???????????
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar UART_buff;
bit rec_dat = 0,send_dat = 0;

void mian()
{
TMOD = 0x20;
TH1 = 0xf4;
TL1 = 0xf4;
TR1 = 1;
SCON = 0x50;
EA = 1;
ES = 1;
while(1)
{
if ((rec_dat == 1) && (send_dat == 1))
{
rec_dat = 0;
send_dat = 0;
SBUF = UART_buff;

}
}
}

void ser() interrupt 4
{
if(RI == 1)
{
RI = 0;
rec_dat = 1;
UART_buff = SBUF;
if( UART_buff == '1') P1=0xfe;
if( UART_buff == '2') P1=0xff;
}
else
{
TI = 0;
send_dat = 1;
}
}
不好意思 我知道哪里错了 应该开始定义 send_dat == 1就行了

第1个回答  推荐于2016-10-14
/*
**********************
if(TI)
{
TI = 0;

send_dat = 1;

}
*********************
*/

用上面的代码替换掉你的
/*
********************
else
{
TI = 0;

send_dat = 0;

}
********************
*/追问

试过了 不行

追答

硬件检查一下。 不行就加我qq吧 ,资料里有。
send_dat = 1 ,不是send_dat == 1

本回答被提问者采纳
第2个回答  2014-06-03
单独处理试试
while(1)
{
if (rec_dat == 1)
{
rec_dat = 0;

if (send_dat== 1)

send_dat = 0;
SBUF = UART_buff;

}
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网