IAM 在 TI RTOS 中使用 TI 驱动程序版本的 UART 可以更改其 TX 引脚上的 UART 默认空闲状态?当我初始化 UART 模块或在其空闲时、TX 引脚将从0V 跳转到3.3V 并保持3.3V、直到我关闭 UART 或 向其写入数据。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
IAM 在 TI RTOS 中使用 TI 驱动程序版本的 UART 可以更改其 TX 引脚上的 UART 默认空闲状态?当我初始化 UART 模块或在其空闲时、TX 引脚将从0V 跳转到3.3V 并保持3.3V、直到我关闭 UART 或 向其写入数据。
空闲高电平对于逻辑电平 UART 来说是相当标准的、我在 TRM [(SLAU723A)第26章]中看不到任何更改该值的机制。 在许多/大多数 UART 中、"长时间"的低 Tx 信号被视为中断字符。
如果线路另一端的器件断电(即您希望避免通过其 UART 引脚为其供电)、则应禁用 UART。 您还可以将引脚备用功能设置为 GPIO (而不是 UnTX)并将其设置为低电平。
@Bruce Mckenney47378
我正在考虑在运行时设置引脚并在其 GPIO 和 UART 功能之间切换、但我不确定这是如何工作的。查看 TI 驱动程序 GPIO 和 UART 源代码的工作方式、似乎无法实现、因为 UART_INIT 和 GPIO_INIT 都只初始化引脚功能一次。IAM 正在考虑 修改 TI 驱动程序 UART 和 GPIO 源代码我想坚持使用 TI 驱动程序、但 我也在查看 在我的 TiRtos 项目中使用 DriverLib、我不确定是否建议这么做。
是什么
EUSCI_A_UART_IDLE_LINE_MULTI_PROCESSOR_MODE
定义"执行"? 它是否使空闲状态反相?
[/报价]我本应该更清楚一点、这是一个针对 TI 的问题。
我对 TI 驱动程序不太熟悉(有些使用 Driverlib)、但通常 UART 无法判断引脚是否连接。 如果您的程序将 Alternate 函数更改为 GPIO (使用 Driverlib 或裸寄存器操作)、驱动程序可能看不到什么区别。
由于这是一种不太常见的用法、因此某些上下文可能会有所帮助。 导线另一端是什么? 它是否会注意到/关心其 Rx 线路是否处于低电平状态一段"很长的时间"? 更一般地说:您的目标是什么?
Driverlib 具有一个函数"UARTBreakCtl (uint32_t ui32Base、bool bBreakState)"、该函数将 UARTLCRH:BRK 设置为启动或停止中断字符[参考 TRM (SLAU723A)表26-10]。 您必须自行安排休息时间。 结束中断字符后、(Tx)线将变为空闲高电平、我认为这将为您提供 MAB。 虽然使用计时器更好、但最初您可能只需使用自旋环路进行计时即可。
可能是 TI 驱动程序具有类似的功能。