我使用双UART口,可是却不能发送! 与UART口相关的代码如下:
#include "p24FJ32GA004.h" #define _P24FJ32GA004
//使用通讯管脚 //URT1RE ->pin1 ->RP9 //URT1RX ->pin2 ->RP22 //URT1TX ->pin3 ->RP23
//URT2RE ->pin9 ->RP11 //URT2RX ->pin10 ->RP12 //URT2TX ->pin11 ->RP13
void initialization() {
RPINR18 = 22; RPINR19 = 12; RPOR6 = 0x0500; // UART2 发送 映射到RP13 RPOR11 = 0x0300; // UART1 发送 映射到RP23
AD1PCFG = 0xFFFF;
U1BRG = 38; // Fcy=12MHz, 19200bps U1MODE = 0; U1STA = 0; U1MODEbits.UARTEN = 1; U1STAbits.UTXEN = 1; IEC0bits.U1RXIE = 1; IEC0bits.U1TXIE = 1; //IPC2bits.U1RXIP = 0; //IPC2bits.U1TXIP = 0; _U1TXIP = 0;
U2BRG = 38; // Fcy=12MHz, 19200bps U2MODE = 0; U2STA = 0; U2MODEbits.UARTEN = 1; U2STAbits.UTXEN = 1; IEC1bits.U2RXIE = 1; IEC1bits.U2TXIE = 1; //IPC2bits.U1RXIP = 0; //IPC2bits.U1TXIP = 0; _U2TXIP = 0;
}
void __attribute__((__interrupt__,no_auto_psv)) _U1TXInterrupt(void) { //************************************ / //UART1TX Uart 1 发送器 //*********************************** / if(_U1TXIF) //if(IFS0bits.U1TXIF) { _U1TXIF = 0; U1TXREG = 0XAA; //测试 } }
void __attribute__((__interrupt__,no_auto_psv)) _U2TXInterrupt(void) { //************************************ / //UART2TX Uart 2 发送器 //************************************ / if(_U2TXIF) { _U2TXIF = 0; U2TXREG = 0xaa; // 测试 } }
|