用RCL 2400bps 8 e 1,工作正常
///< LPUART0配置
static void board_LpuartConfig(void)
{
stc_lpuart_cfg_t stcCfg;
DDL_ZERO_STRUCT(stcCfg);
#if(LPUART_CLKSRC_RCL==LPUART_CLKSRC)
Sysctrl_SetRCLTrim(SysctrlRclFreq38400);
Sysctrl_ClkSourceEnable(SysctrlClkRCL,TRUE); //开 RCL 时钟 已在系统时钟初始化时开启
#endif
///<外设模块时钟使能
Sysctrl_SetPeripheralGate(SysctrlPeripheralLpUart0,TRUE);
#if(LPUART_CLKSRC_XTL==LPUART_CLKSRC) ///<LPUART 初始化 2400bps 误差较大13% 若无法用,则换时钟源RCL 38400Hz
stcCfg.enStopBit = LPUart1bit; ///<1停止位
stcCfg.enMmdorCk = LPUartEven; ///<偶校验
stcCfg.stcBaud.enSclkSel = LPUartMskXtl; ///<传输时钟源 XTL
stcCfg.stcBaud.u32Sclk = LPUART_CLKSRC_XTL; ///sclk
stcCfg.stcBaud.enSclkDiv = LPUartMsk4Or8Div; ///<采样分频<模式0无效,模式1/3为4分频,模式2为8分频
stcCfg.stcBaud.u32Baud = 2400; ///<波特率
stcCfg.enRunMode = LPUartMskMode3; ///<工作模式
LPUart_Init(M0P_LPUART0, &stcCfg);
#elif(LPUART_CLKSRC_RCL==LPUART_CLKSRC)
stcCfg.enStopBit = LPUart1bit; ///<1停止位
stcCfg.enMmdorCk = LPUartEven; ///<偶校验
stcCfg.stcBaud.enSclkSel = LPUartMskRcl; ///<传输时钟源 XTL
stcCfg.stcBaud.u32Sclk = LPUART_CLKSRC_RCL ; ///sclk
stcCfg.stcBaud.enSclkDiv = LPUartMsk4Or8Div; ///<采样分频<模式0无效,模式1/3为4分频,模式2为8分频
stcCfg.stcBaud.u32Baud = 2400; ///<波特率
stcCfg.enRunMode = LPUartMskMode3; ///<工作模式
LPUart_Init(M0P_LPUART0, &stcCfg);
#endif
///<LPUART 中断使能
LPUart_ClrStatus(M0P_LPUART0,LPUartRC); ///<清接收中断请求
LPUart_ClrStatus(M0P_LPUART0,LPUartTC); ///<清发送中断请求
LPUart_EnableIrq(M0P_LPUART0,LPUartRxIrq); ///<使能接收中断
EnableNvic(LPUART0_IRQn,IrqLevel3,TRUE); ///<系统中断使能
// LPUart_EnableIrq(M0P_LPUART0,LPUartTxIrq); ///<使能发送中断
// LPUart_DisableIrq(M0P_LPUART0,LPUartRxIrq); ///<禁止接收中断
}
|
能不能设置sclk不分频