PIC32MX und UART2

Gast #3629089
Lesenswert?

Kann mir jemand kurz ein Anfänger-Hilfe für den PIC32MX geben?
Ich habe UART1 des PIC32MX am Laufen und möchte jetzt auch
UART2 benutzen.

UART1 war einfach:
OpenUART1 und diverse WriteUART1

UART2 ist (soweit ich gesehen habe fest) mit RF12 und RF13 verschaltet.
Also selbiges für UART2:
OpenUART2 und diverse WriteUART2

Aber es kommt nichts am TX raus.
Ich vermute, dass der Mode auf GPIO steht und erst auf
Mode UART umgestellt werden muss. Bei UART1 war dies scheinbar
automatisch bereits richtig (Default-Einstellungen?).

        // Initialize RF12 and RF13
        mPORTFSetBits(BIT_12);
        mPORTFSetBits(BIT_13);
        mPORTFSetPinsDigitalOut(BIT_12);
        mPORTFSetPinsDigitalOut(BIT_13);

        OpenUART2(UART_EN, UART_RX_ENABLE | UART_TX_ENABLE, 
(GetPeripheralClock()/16/9600)-1);

        while(1) {
            unsigned long w;
            mPORTFSetBits(BIT_12);
            mPORTFClearBits(BIT_13);
            for(w = 0; w < 1000000; w++);
            mPORTFSetBits(BIT_13);
            mPORTFClearBits(BIT_12);
            for(w = 0; w < 1000000; w++);
        }

Durch diesen Code blinken die Ausgänge, also werden
beide als GPIO (und Ausgang) und nicht als UART RX/TX benutzt.

Gibt es da ein plib-Makro oder plib-Funktion?
Oder welches Register müsste ich mit welchem Wert füllen?
Gast #3629269
Lesenswert?

Ok, gelöst.

RF12/RF13 ist nicht UART2, sondern UART5.
Er wird in der Software als UART2B angesprochen.

OpenUARTx gibt es nur für UART1 und UART2, nicht für UART2B,
muss man also entweder auf Register-Basis ansprechen
oder z.B. via

UARTConfigure(UART2B, UART_ENABLE_PINS_TX_RX_ONLY);
UARTSetLineControl(UART2B, UART_DATA_SIZE_8_BITS | UART_PARITY_NONE | 
UART_STOP_BITS_1);
UARTSetDataRate(UART2B, GetPeripheralClock(), 9600);
UARTEnable(UART2B, UART_ENABLE_FLAGS(UART_PERIPHERAL | UART_RX | 
UART_TX));

UARTSendDataByte(UART2B, 'A');

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren