#include "p30f4012.h"
#include<math.h>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#define nop "nop"
void UartInit();
int a[32];
main()
{
UartInit();
while(1)
{
nop;
}
}
void UartInit()
{
U1MODEbits.UARTEN=0;
U1BRG=((1843200/16)/57600)-1;
U1MODEbits.USIDL =0;
U1MODEbits.PDSEL =0;
U1MODEbits.STSEL =0;
U1MODEbits.ALTIO = 1;
U1STAbits.UTXISEL =1;
U1STAbits.URXISEL =3;
IEC0bits.U1RXIE =1;
IEC0bits.U1TXIE =1;
IFS0bits.U1RXIF =0;
IFS0bits.U1TXIF =0;
U1MODEbits.UARTEN =1;
U1STAbits.UTXEN =1;
}
void __attribute__((__interrupt__)) _U1TXInterrupt(void)
{
IFS0bits.U1TXIF =0;
int *pint;
pint=&a[0];
while(!U1STAbits.UTXBF)
{
U1TXREG=*pint++;
}
}
void __attribute__((__interrupt__)) _U1RXInterrupt(void)
{
IFS0bits.U1RXIF =0;
int *pint;
pint=&a[0];
while(U1STAbits.URXDA)
{
*pint++=U1RXREG;
}
}
为什么这个程序运行时,接受中段进不去呢? |