2016-09-24 38 views
0

我使用PIC32MX唱首歌(PIC32MX534F064H微控制器),用於使用USB轉串口轉換器在波特率115200PIC32MX Clicker的UART問題

通過UART傳輸數據和接收相同PC上的當我嘗試通過PIC32發送數據並在我的電腦上閱讀,我收到的數據,但是,這是不同的。請參閱下面的代碼片段。如果有人能夠建議我修改以使uart工作,那將是非常棒的。由於

#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)); 
} 

回答

0

下面是我如何配置我的9600 UART5上使用了GPS芯片進行通信的PIC32MX795F512L。這應該是相同的只需更換115200,它應該工作。如果它不嘗試使用9600,那麼你有一個假的FTDI USB < - >串行轉換器,假的可能是變幻莫測。

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

如果您使用此方法取得成功,請立即註冊。謝謝 – blsmit5728