Thread 中讨论的其他器件:SysConfig
我一直在这个上的衬套周围跳动。 我知道 MCU h/w 有一个 UART 可以执行 RTS/CTS 引脚控制、它位于'SYSC715'页面中。
但是、它似乎不起作用、只能将 FlowControl 设置为开启、然后在 SysConfig 中定义 CTS 和 RTS 引脚。
我需要的是让 RTS 降至低电平、以便根据需要将我的 RS485线路驱动器 IC 切换为输出或输入。 我目前使用的是这种方法
将 GPIO_write()简单地写入引脚,并在切换该线路之前和之后具有较小的延迟。 这实际上是硬件 UART 的任务
因为它"知道"何时需要从 TX 引脚发送缓冲字符、所以执行此操作。 我希望在设置 RTS 并忽略 CTS 后执行该操作
引脚、因为它不是必需的、也不需要通过任何方式将它连接到任何地方。
在浏览了 UART 源代码并单步执行它之后、除了我想说的之外、我看不到一整组用户配置
流控制、这里是 SysConfig 引脚编辑器中要使用的两个引脚。
CC26x2R1F H/W 数据手册中不清楚的是 RTSEN 和 RTS 引脚的作用、或由 H/W 设置/复位它们的时间
我知道 RTSEN 启用了该函数、但该寄存器中的 RTS 位表示它似乎"反相"了'RTS 信号"、我猜是这样的
这意味着 MCU 引脚上会出现什么情况? 那么、该寄存器位只是一种将 UART 的内部 RTS 信号反相的方法?
这意味着"RTS 信号"是一些内部值、通常会将 LO 降至请求发送状态、而 RTS 寄存器引脚则简单
将该信号反相到 MCU 引脚上会出现的值?
如果我的描述正确或正确、该怎么办?
TI 工程师是否有任何源代码示例可将其与驱动程序库模块配合使用或直接与 H/W 寄存器配合使用?
更改我尝试避免的库源文件、会让您感到非常困惑和混乱。 我怀疑
TI 库开发团队中的某个人会对 UART2库进行编码、并可能有一些例程。
我还看到有两个事件可能对我有所帮助:(来自 UART2.H)
/*!
*@简述 UART 将开始传输数据。
*
*此事件在 RS-485半双工系统中可用于将 TX 使能切换为高电平。
*
#define UART2_EVENT_TX_BEGIN (0x10)
/*!
*@短述 UART 停止传输数据。
*
*此事件在 RS-485半双工系统中可用于将 TX 使能端切换为低电平。
*
#define UART2_EVENT_TX_finished (0x20)
这两个事件似乎在"事件回调"中可用、SDK 页面中对此没有详细说明。 我找到了
它的源代码文档比在线花式页面要新得多。 这似乎是他们要使用的调用/文档:
/*!
* @简要介绍 UART 驱动程序所使用的回调函数的定义。
* 可以在任务或中断上下文中进行回调。
*
* @param[in] UART2_handle UART2_handle
*
* @param[in] 发生的事件 UART2_EVENT。
*
* @param[in] data - UART2_EVENT_overrun:累加计数
* - UART2_EVENT_break:未使用
* - UART2_EVENT_奇 偶校验:未使用
* - UART2_EVENT_FRAME:未使用
* - UART2_EVENT_TX_BEGIN:未使用
* - UART2_EVENT_TX_ENDULished:未使用
*
* @param[in] userArg 指定了用户提供的参数
* 在 UART2_Params 中。
*
* @param[in] 状态 表示 UART2_STATUS 代码的代码
* 传输成功或失败。
*
typedef void (* UART2_EventCallback)(UART2_Handle handle、uint32_t 事件、uint32_t 数据、void * userArg");
网址:/ti/simplelink_cc13xx_cc26xx_sdk_6_30_01_03/source/ti/drivers/UART2.h
我想我可以使用这种方法、但我在 TI 的库中发现的一些东西无法正常工作、工作异常或异常
难以理解、先编写代码、然后进行调试。 有人能证明 UART 事件确实起作用吗?
我可以在发生这两个事件时设置/重置 RS485信号、而不必以这种方式进行内联程序延迟。
我希望我在这里不会感到很糟糕、但我想充分说明我尝试使用 SDK 实现半双工 RS485的经验。
感谢您的任何帮助或建议、
Marc
我使用的是 CC2642R1F 器件。