PIC32MX Clicker UART问题

时间:2016-09-24 17:43:00

标签: uart pic32

我正在使用PIC32MX Clicker(PIC32MX534F064H微控制器)通过UART传输数据并使用USB转串口转换器在bordrate 115200上在PC上接收数据。

当我尝试通过PIC32发送数据并在我的PC上读取数据时,我收到了数据,但这些数据不同。请参阅下面的代码段。如果有人能建议我修改什么来让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));
}

1 个答案:

答案 0 :(得分:0)

以下是我如何在PIC​​32MX795F512L上配置9600 UART5以用于与GPS芯片通信。这应该是相同的,只需用115200替换,它应该工作。如果它没有尝试9600你有一个假的FTDI USB&lt; - &gt;串口转换器,假的可能是非常易变的。

    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);
相关问题