我写了个简单的UART 和PC的RS232通信的程序,现在问题是PC给MCU发数据接收是正常的,可是MCU就是不能给PC发数据,用串口调试精灵,看不到结果!请大家帮帮我,我搞了几天了,没有搞定!<br /><br />#include "p30f4013.h"<br />#define FCY 14745600<br />_FOSC(CSW_FSCM_OFF & XT_PLL8);//use a external crystal ,the instruction cycle =1/(FOSC*PLL/4)<br />_FWDT(WDT_OFF);<br />_FBORPOR(PBOR_OFF & MCLR_EN);//disable power off pretect,enable MCLR<br />_FGS(CODE_PROT_OFF);//disable code pretect<br /><br />void ini232(void);<br />void __attribute__((__interrupt__)) _U1RXInterrupt(void); /*Declare 232 interrupt ISRs*/<br /><br />unsigned char rxdata;<br /><br />int main (void)<br />{ <br />unsigned char i;<br />ini232(); /* Call function to initialize the 232 Interrupts */<br />for(i=32;i!=0;i--); <br />while(1)<br /> {<br /> U1TXREG=0x66;<br /> while(U1STAbits.TRMT==0); <br /> IFS0bits.U1TXIF=0; <br /> } <br />}<br /><br />void ini232(void)<br />{<br /> <br /> TRISFbits.TRISF2 =1; <br /> TRISFbits.TRISF3 =0;<br /><br /> U1BRG =95; //9600 baud rate<br /><br /> IPC2bits.U1RXIP=7;<br /> IEC0bits.U1TXIE=0;<br /> IEC0bits.U1RXIE=1;<br /><br /> U1MODE =0x8020;<br /> <br /> U1STAbits.UTXEN =1;<br /> <br />}<br /><br />void __attribute__((__interrupt__)) _U1RXInterrupt(void)<br />{<br />IFS0bits.U1RXIF = 0; <br />rxdata=(char)U1RXREG;<br /> <br />}<br /> |
|