2016-09-24 2 views
0

Ich verwende PIC32MX Clicker (PIC32MX534F064H Mikrocontroller) für Daten über UART und Empfangen von denselben auf dem PC mit einem USB-Seriell-Umsetzer bei Baudraten 115200PIC32MX Clicker UART Ausgabe

Übertragung Wenn ich versuche, die Daten durch PIC32 zu schicken und las auf meinem PC, ich erhielt Daten, die aber unterschiedlich sind. Bitte beachten Sie die folgenden Codeschnipsel. Es wäre toll, wenn mir irgendjemand vorschlagen könnte, was ich modifizieren könnte, damit der Bau funktioniert. Dank

#define GetSystemClock()  (80000000ul) 
#define GetPeripheralClock() (GetSystemClock()/(1 << OSCCONbits.PBDIV)) 
#define GetInstructionClock() (GetSystemClock()) 

void initSerial(){ 
UARTConfigure(UART5,UART_ENABLE_PINS_TX_RX_ONLY); 
UARTSetFifoMode(UART5, UART_INTERRUPT_ON_TX_NOT_FULL 
     | UART_INTERRUPT_ON_RX_NOT_EMPTY); 
UARTSetLineControl(UART5, UART_DATA_SIZE_8_BITS | UART_PARITY_NONE | UART_STOP_BITS_1); 
UARTSetDataRate(UART5, GetPeripheralClock(), 115200); 
UARTEnable(UART5, UART_ENABLE_FLAGS(UART_PERIPHERAL | UART_RX | UART_TX)); 
} 


void writeSerial(uint8_t c){ 
while(!UARTTransmitterIsReady(UART5)); 
UARTSendDataByte(UART5, c); 
while(!UARTTransmissionHasCompleted(UART5)); 
} 

Antwort

0

Unten ist, wie ich meine 9600 UART5 auf einem PIC32MX795F512L für die Verwendung konfigurieren mit einem GPS-Chip zu kommunizieren. Dies sollte das gleiche sein, ersetzen Sie einfach mit 115200 und es sollte funktionieren. Wenn es nicht 9600 auf die Chance, Sie haben einen gefälschten FTDI USB < -> Seriell-Konverter versuchen, können die gefälschten sehr unbeständig sein.

UARTConfigure(UART5, UART_ENABLE_PINS_TX_RX_ONLY); 
    UARTSetFifoMode(UART5, UART_INTERRUPT_ON_RX_NOT_EMPTY); 
    UARTSetLineControl(UART5, UART_DATA_SIZE_8_BITS | UART_PARITY_NONE | UART_STOP_BITS_1); 
    /* configPERIPHERAL_CLOCK_HZ = 40000000 */ 
    UARTSetDataRate(UART5, configPERIPHERAL_CLOCK_HZ, 9600); 
    UARTEnable(UART5, UART_ENABLE_FLAGS(UART_PERIPHERAL | UART_RX | UART_TX)); 
    INTSetVectorPriority(INT_VECTOR_UART(UART5), configKERNEL_INTERRUPT_PRIORITY + 1); 
    INTSetVectorSubPriority(INT_VECTOR_UART(UART5), INT_SUB_PRIORITY_LEVEL_2); 
    INTEnable(INT_SOURCE_UART_RX(UART5), INT_ENABLED); 
+0

Bitte upvote, wenn Sie Erfolg mit dieser Methode haben. Vielen Dank – blsmit5728