我用stc 12C5A08AD单片机做485通讯,除了一个很巧怪 的问题。用串口给单片机下载程序时串口同时连接的485芯片,不能下载程序。我断开和485的连接能下载。中国问题我也理解,但是更急怪的问题是:我断开和485连接程序能运行,不断开和 485的连接程序只是循环运行一个子函数。没完没了。
我的这个子函数功能是主机连续发送1-254到从机。从机地址如果是1-254范内返回给主机,主机保存在数组里。
下面我的程序:
void main()
{ uchar i,j,n,temp,addr1,k;
uint m;
P2=0xff;
UartInit();
Tim0_init();
S119=1;
RED=0;
get_num();
for(i=0;i<8;i++)
{
if(pot_address[i]==0)
{
bbb=i+1;
break;
}
else
bbb=9;
}————————————————————————
这是部分主机程序
下面是子函数:
void get_num(void)
{
uchar temp=16,N=0,k=0;
UartInit();
Delay1ms(200);
TB8=1;RED=1;
for(N=1;N<254;N++)
{ //if(m>254)
//{break;}
Delay1ms(200);
EN=0; //使能发送
Delay1ms(10);
SBUF=N;
while(TI==0);
TI=0;
Delay1ms(100);
EN=1;
Delay1ms(10);
if(RI==1)
{
RI=0;
temp=SBUF;
pot_address[k]=temp;
k++;
}
}
RED=0;
}
恳请有人给我看看 |