调试过程中,不知道为什么产生的波形不正确,晶振为8M。求指点迷津。初始化程序如下:
void Uart1_Init(void)
{
Bdr1=9600;
TRISDbits.TRISD3 = 1; /*输入*/
TRISDbits.TRISD2 = 0; /*输出*/
RPINR18bits.U1RXR = 22; /*U1RX分配给RP22*/
RPOR11bits.RP23R = 3; /*U1TX分配给RP23:3号*/
U1MODEbits.UARTEN=0; /*禁止UART1*/
U1MODEbits.BRGH=0; /*16倍频波特率时钟,标准模式*/
//U1MODEbits.BRGH=1; /*4倍频波特率时钟高速模式*/
U1MODEbits.PDSEL1=0;
U1MODEbits.PDSEL0=0; /*8位数据,无奇偶校验模式*/
U1MODEbits.STSEL=0; /*1个停止位*/
U1BRG=(FOSC/2/(16*Bdr1))-1; /*波特率计算公式,BRGH=0*/
//U1BRG=FOSC/(8*Bdr1)-1; /*波特率计算公式,BRGH=1*/
U1STAbits.URXISEL1=0; /*当接收到一个字符且 RSR的内容被传输给接收缓冲器时,中断标志位置 1。接收缓冲器有一个或多个字符。*/
_NSTDIS=1; /*禁止中断嵌套*/
_U1RXIP=1; /*设置串口1中断优先级为1*/
_U1RXIF=0; /*清除串口1接收中断标志位*/
_U1RXIE=1; /*允许UART1接收中断*/
U1MODEbits.UARTEN=1; /*使能UART1*/
U1STAbits.UTXEN=1; /*使能发送*/
} |