员工、
当 TivaWare 首次推出时、我们可以选择使用两个 UART 库。 也可以
C:\ti\TivaWare_C_Series-2.1.X\utils\uartstdio.c (具有 UARTPrintf)或
C:\ti\TivaWare_C_Series-2.1.X\driverlib\UART.c (具有 UARTCharPut 和 Get 等)
UARTPrintf 的吸引力在于它具有软件 缓冲区、而 UARTCharPut 和 UARTCharGet 没有软件缓冲区。
uartstdio.c (包含 UARTPrintf)的问题是,它只能通过硬编码与前3个 UART 端口一起工作,并且一次不能打开/缓冲多个 UART。 但 TM4C129X 有八个 UART。 要在 TM4C129X 上使用 UARTPrintf、需要修改库代码以添加更多端口、并为每个 UART 端口提供一个库副本(因为一次只能打开一个端口、并且缓冲也不可扩展)
- 在 UART.c 中排除缓冲 UART Tx 和 Rx 是有意还是疏忽 ??
- 为什么不重新编写 uartstdio.c 来支持具有3个以上 UART 的 MCU?
UARTStdioConfig 从下面 的 uartstdio.c 复制 、显示它如何仅处理3个端口。
空 UARTStdioConfig (uint32_t ui32PortNum、uint32_t ui32Baud、uint32_t ui32SrcClock) { // //检查参数。 // assert ((ui32PortNum =0)||(ui32PortNum =1)|| (ui32PortNum==2));