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