while(1)
{
__bis_SR_register(LPM3_bits + GIE); // 进入 LPM3 w/ interrupt
WDTCTL = WDTPW + WDTCNTCL + WDTSSEL0 + WDTIS1; // clear watchdog 4m16s
if(bWorking_flag)
{
…..
}
#ifdef Comm_RS485
_DELAY_CYCLES(1000);
if(bRX_finished)
{
// rs485
Spi_uart2_rx_deal(ui8RX_buffer,ui8TX_buffer);
bRX_finished = false;
}
#endif
}
在程序中加了 _DELAY_CYCLES(1000);差不多30秒后,就通讯正常,比原来快了很多
我有点不明白,平常串口始终在接收状态,一有信号来,就唤醒,晶振和时钟如何稳定下来,延时一小也就对发送启作用 |