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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.