兄弟在搞PIC18F4550串行口通讯时,出现这样的问题。
就是在上电后,串口一直发送0x00到PC机上。
并且在设计时,是当PC机发送数据给下位机,下位机收到数据后,校验正确后,
再发相应的数据给PC机,但也是有一固定几个而以。也不是一直发啊!!
而且在ICD2硬件仿真的情况下,程序还没有执行,下位机就一直给PC机发送数
据。
最奇怪的是当我的程序运行后,下位机还一直给PC机发送数据,当我按相应的
命令格式发送命令给下位机时,下位就不一直发数据了,而是返回正确的数据。
请哪位大侠指点一二。
以下是我的初始化程序!!! void UsartInit(void) { INTCONbits.GIE = false; //关中断 //特殊功能寄存器设置 TRISCbits.TRISC6 = true; //RX TRISCbits.TRISC7 = true; //TX
//串口设定 SPBRG = 0x81; //晶振20M时波特率:9600 //接收数据寄存器器设置 RCSTA = 0x00; PIE1bits.RCIE = true; //允许接收中断 PIR1bits.RCIF = false; //中断位清0 RCSTAbits.CREN = true; //使能接收 //发送接收数据寄存器器设置 TXSTA = 0x04; //SYNC=0;BRGH=1; RCSTAbits.SPEN = true; //使能串口 //打开中断 INTCONbits.PEIE = true; //允许所有关未屏蔽的外围中断 INTCONbits.GIE = true; //开中断 }
|