
RT.使用的是内部的40mhz时钟。
void SerialInit(void)
{
    UART_InitStructure UART_initStruct;
    
    PORT_Init(PORTA, PIN2, FUNMUX0_UART0_RXD, 1);    //GPIOA.2ΪUART0
    PORT_Init(PORTA, PIN3, FUNMUX1_UART0_TXD, 0);    //GPIOA.3ΪUART0
     
     UART_initStruct.Baudrate = 115200;
    UART_initStruct.DataBits = UART_DATA_8BIT;
    UART_initStruct.Parity = UART_PARITY_NONE;
    UART_initStruct.StopBits = UART_STOP_1BIT;
    UART_initStruct.RXThreshold = 1;
    UART_initStruct.RXThresholdIEn = 1;
    UART_initStruct.TXThreshold = 3;
    UART_initStruct.TXThresholdIEn = 0;
    UART_initStruct.TimeoutTime = 10;
    UART_initStruct.TimeoutIEn = 1;
     UART_Init(UART0, &UART_initStruct);
    NVIC_DisableIRQ(UART0_IRQn);
    UART_Open(UART0);
}
现象串口输出乱码
波特率为57600的时候正常
最近编辑记录 xiaohui (2020-02-03 20:42:50)
离线

已找到问题,官方库的bug
SWM320_uart.c(58):    
UARTx->BAUD |= ((SystemCoreClock/16/initStruct->Baudrate - 1) << UART_BAUD_BAUD_Pos);
改为
UARTx->BAUD |= ((SystemCoreClock/16/(initStruct->Baudrate - 1)) << UART_BAUD_BAUD_Pos);
希望官网修改@华芯微特
最近编辑记录 xiaohui (2020-02-03 20:43:24)
离线
谢谢提问,请到官网去查看哦~~~
已找到问题,官方库的bug
SWM320_uart.c(58):
UARTx->BAUD |= ((SystemCoreClock/16/initStruct->Baudrate - 1) << UART_BAUD_BAUD_Pos);
改为
UARTx->BAUD |= ((SystemCoreClock/16/(initStruct->Baudrate - 1)) << UART_BAUD_BAUD_Pos);
希望官网修改@华芯微特
离线