|
void MF_LPUART1_Init(uint32_t BaudRate)//LPUART0初始化函数
{
FL_GPIO_InitTypeDef GPIO_InitStruct;
NVIC_ConfigTypeDef InterruptConfigStruct;
FL_LPUART_InitTypeDef defaultInitStruct;
GPIO_InitStruct.pin = LP_UART1_RX_TX;
GPIO_InitStruct.mode = FL_GPIO_MODE_DIGITAL;
GPIO_InitStruct.outputType = FL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.pull = FL_ENABLE;
GPIO_InitStruct.remapPin = FL_ENABLE;
FL_GPIO_Init( LP_UART1_GPIO_Port, &GPIO_InitStruct );
defaultInitStruct.clockSrc = FL_RCC_LPUART_CLK_SOURCE_LSCLK;
switch(BaudRate)
{
case 9600: defaultInitStruct.baudRate = FL_LPUART_BAUDRATE_9600; break;
case 4800: defaultInitStruct.baudRate = FL_LPUART_BAUDRATE_4800; break;
case 2400: defaultInitStruct.baudRate = FL_LPUART_BAUDRATE_2400; break;
case 1200: defaultInitStruct.baudRate = FL_LPUART_BAUDRATE_1200; break;
case 600 : defaultInitStruct.baudRate = FL_LPUART_BAUDRATE_600 ; break;
case 300 : defaultInitStruct.baudRate = FL_LPUART_BAUDRATE_300 ; break;
default : break;
}
defaultInitStruct.dataWidth = FL_LPUART_DATA_WIDTH_8B;
defaultInitStruct.stopBits = FL_LPUART_STOP_BIT_WIDTH_1B;
defaultInitStruct.parity = FL_LPUART_PARITY_NONE;
defaultInitStruct.transferDirection = FL_LPUART_DIRECTION_TX_RX;
FL_LPUART_Init(LPUART1,&defaultInitStruct );
InterruptConfigStruct.preemptPriority = 0x02; //设定中断优先级
NVIC_Init(&InterruptConfigStruct,LPUART1_IRQn );//初始化中断功能
FL_LPUART_EnableIT_RXBuffFull(LPUART1 );//启用UART接收缓冲区溢出中断
}
这是LPUART1初始化 时钟用的是LSCLK,结果波特率就不对(程序9600但是串口助手14400才能显示成功),如果用RCHF波特率就对,9600匹配,之前画的一版电路也是用这PB13 PB14,就没遇到这样问题,请问电路哪里可能引起这样的问题?
|
|