你(们)好 我在做 UART 示例、应该是115200波特、当我使用内部 osc 时、但当我使用外部25MHz 晶体时、实际上得到 的波特率是74184。 (使用 TivaWare_C_Series-2.1.4.178)
我测量了外部 xtal、它的运行频率精确为25MHz。
ui32SysClock = SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_OSC)、25000000);
我已使用调试器验证 ui32SysClock 是否设置为25000000。
(笑声)
MAP_UARTConfigSetExpClk (UART0_BASE、ui32SysClock、115200、 (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE));
或者、当我使用内部 osc 时、如下所示、波特率实际上为115200 (这次将 ui32SysClock 设置为16000000)。
ui32SysClock = SysCtlClockFreqSet ((SYSCTL_XTAL_16MHz | SYSCTL_OSC_INT | SYSCTL_USE_OSC)、16000000);
我只是想知道原因是什么。
我还尝试了如下 PLL:
ui32SysClock = SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、120000000);
系统运行速度当然快得多、但波特率实际上是正确的、115200和 ui32SysClock 设置为120000000。