我做的485通讯,用的是MODBUS协议,要实现上位机发送数据,单片机接受后回馈给上位机相应数据。我做的方法是让上位机给单片机传数据,然后接受数据产生中断(RC1IF置1)后,再开始进行发送数据给上位机。但现在的问题是,我用串口精灵自动发送数据后,一直不能产生中断。我不知道到底哪里出了问题。请高手帮忙解答下,我用的是PIC18F85J90,ICD2。再附上我的串口初始化程序
void EUSART_init(void) //异步串行通讯初始化函数
{
SPBRG1=0x0C; //波特率为9600(时钟频率为16M) 0x19
// SPBRGH1=0x00;
RCSTA1=0x90; //8位接收
TXSTA1=0X00;
BRGH=0; //高波特率选择位 (低速)
BRG16=0; //16位波特率使能位
CREN=1; //接收使能位
asm("CLRWDT");
RC1IF=0;
RC1IE=1; //接收中断使能
RC1IP=1; //高优先级
TX1IF=0;
TX1IE=1;
WUE=0; //唤醒使能位 采样RX脚,
ABDEN=0; //自动波特率检测使能位
PEIE=1; //中断使能
}
|