今天调试PIC18的串口,发现个诡异的问题。
先初始化串口,屏蔽串口中断,用查询的方式发送串口数据。然后通过串口发送调试信息。如果main函数中有类似于while(1)的操作,即正常现象。如果main函数中没有类似于while(1)的主循环,则会不断的重复发送数据。
代码如下:
main() { OpenUSART( USART_TX_INT_OFF /*Set TXSTA Reg. =0b00100100*/ & USART_RX_INT_ON /*Set RCSTA Reg. =0b10010000*/ & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_HIGH ,25); /*Set SPBRG=25, Baud Rate = 9600*/ PIE1bits.TXIE=0; /*disable debug port interrupt*/ PIR1bits.RCIF=0; IPR1bits.RCIP=1; /*Set Receive of USART are High priority*/ PIE1bits.RCIE=1; /* Enable RxD Interrupt*/ while (BusyUSART()); WriteUSART('A'); while(1); }
PIC18诡异的问题
最新推荐文章于 2025-01-22 06:52:49 发布