STC89C52用于无线接收,刚开始几十分钟还能正常工作,大概一个小时后收到几次数据后单片机好像死机了一样。/******************************************************************/
/* 主程序 */
/******************************************************************/
run_cnt++;
if(run_cnt==25500)
{
run_cnt=0;
Send_one_byte(0X01);
o4_led=0;
run_led= ~run_led; //运行灯
o4_led=1;
Send_one_byte(0X02);
}
/******************************************************************/
/* 外部中断函数 */
/******************************************************************/
void Int_ext(void ) interrupt 0
{
in_led=0;
sta=SPI_Read(STATUS);
if(RX_DR==1)
{
SPI_Read_Buf(RX_PLOAD_ADDR,rx_buf,TX_PLOAD_WIDTH);
reg_status=1;
}
if(TX_DS==1)
{
}
if(MAX_RT==1)
{
SPI_RW_Reg(FLUSH_TX,0);
}
SPI_RW_Reg(WRITE_REG + STATUS, sta); //清除中断
in_led=1;
}
通过串口调试助手观察,接收到数据01之后主程序就停止了。只有外部中断还在定时中断(发送方定时发送数据)。
|