最近用飞思卡尔单片机MC9S12D64同时打开两个串口(串口接收中断),利用232转485模块做485多级通信。发现只接其中任何一路都能正常发送接收,但当同时接上两路时单片机直接死机!请问哪位知道怎么回事,下面是串口初始化程序!
void InitSCI(void)
{
SCI0BDH=0x00; //
SCI0BDL=0x1a; //12M,28800bps BAUD=12M/16*BDL
SCI0CR1=0x14; //1个起始位,9个数据位,1个停止位
SCI0CR2=0x2c;
SCI1BDH=0x00; //
SCI1BDL=0x1a; //12M,28800bps BAUD=12M/16*BDL
SCI1CR1=0x14; //1个起始位,9个数据位,1个停止位
SCI1CR2=0x2c;
//以下为232转485模块控制
SCI0_EN; //串口0使能
SCI1_EN; //串口1使能
SCI0_RX; //串口0允许接收
SCI1_RX; //串口1允许接收
//以下为多机通信时从机(单片机)判断主机发送的地址时用
SCI0CR1_M=1;
SCI0DRH_R8=0;
SCI1CR1_M=1;
SCI1DRH_R8=0;
return;
} |