本帖最后由 jin1song 于 2012-7-6 16:30 编辑
把我的代码贴上,接收和发送我都用的是查询方式,现在的现象是间隔时间不管是多少ms,如果在自动发送中手动发送一次,串口助手就没有返回数据了。把自动发送停止 ,用手动发送也不能返回。除非把产品的电源重新开一次。看我的程序是否有问题。单片机是c8051f340,发送的数据是六个字节。void main()
{
uint i;
uchar a;
PCA0MD &=~0x40;
Init_Device();
while(1)
{
for(a=0;a<6;a++)
{ DE=0;
delay();
while(RI0==0);
RI0=0;
recdata[a]=SBUF0;
}
if((recdata[4] == recdata[0]^recdata[1]^recdata[2]^recdata[3])&(recdata[5] == 0x22)) //做异或校验
{
senddata_driver();
for(i=0;i<10000;i++);
transmit_RS485();
}
}
}
|