主题中讨论的其他器件: SN65HVD1782、 EK-TM4C1294XL
工具/软件:Code Composer Studio
你(们)好
能否有人可以为我的应用帮助我如何将 UART TTL 转换为 RS 485。 我知道我需要一个使能引脚来传输消息、但我应该如何为微控制器配置引脚。
代码执行同样的操作将会大有帮助。
提前感谢您。
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.
工具/软件:Code Composer Studio
你(们)好
能否有人可以为我的应用帮助我如何将 UART TTL 转换为 RS 485。 我知道我需要一个使能引脚来传输消息、但我应该如何为微控制器配置引脚。
代码执行同样的操作将会大有帮助。
提前感谢您。
您好!
您正在谈论什么使能引脚? 此帖子可能有助于 https://e2e.ti.com/support/microcontrollers/other/f/908/p/800573/2967482?tisearch=e2e-quicksearch&keymatch=rs485#2967482。
永怀、您好!
GPIO 非常简单。 您可以参考 TivaWare hello、blinky 或 project0来获取有关如何使用 GPIO 引脚的一些想法。 下面是闪烁示例中的代码片段。
#define USER_LED1 GPIO_PIN_0 #define USER_LED2 GPIO_PIN_1 //********* // //如果驱动程序库遇到错误,则调用的错误例程。 //// ***************** #ifdef debug void __error__(char *dpcFilename、uint32_t ui32Line) { #endif //********* // ////主"C"语言入口点。 使用 TivaWare 切换 LED。 //// ***************** int main (void) { uint32_t ui32SysClock; // //从 PLL 以120MHz 运行。 // ui32SysClock = SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480)、120000000); // //启用并等待端口准备好访问 // SysCtlPeripheralEnable (SYSCTL_Periph_GPION); while (!SysCtlPeripheralReady (SYSCTL_Periph_GPION)) { } // //为 LED 操作配置 GPIO 端口。 // GPIOPinTypeGPIOOutput (GPIO_PORTN_BASE、(USER_LED1|USER_LED2)); // //永久循环 // while (1) { // //打开 LED // GPIOPinWrite (GPIO_PORTN_BASE、(USER_LED1|USER_LED2)、USER_LED1); // //延迟一位 // SysCtlDelay (ui32SysClock/6); // //打开 LED // GPIOPinWrite (GPIO_PORTN_BASE、(USER_LED1|USER_LED2)、USER_LED2); // //延迟一位 // SysCtlDelay (ui32SysClock/6); } }
您需要使能引脚的目的是什么? 您能详细介绍一下吗? 我不知道您的系统设计。 如果您只需要将 GPIO 用作使能引脚、那么为什么在开始 UART 传输之前不启用该引脚? 您是否未调用 UARTCharPut 来传输数据? 在调用 UARTCharPut 之前、我本以为您启用了该引脚。 至于在 UART 传输开始之前使能引脚需要提前多远、您需要自行了解时序问题。
据我所知、RS485 是一种标准、它指定两条线路上的差分信令、而不是像 UART 那样以接地为基准的单端电压。 差异是在电气级别而不是协议级别。 请参见下面的。
https://www.ftdichip.com/Support/Documents/TechnicalNotes/TN_111%20What%20is%20UART.pdf
尊敬的先生:
是的、先生、我知道、在传输前必须将使能引脚拉高、在传输后必须将其禁用。 但是、在 S2E 的示例代码中(因为我需要的应用是输出串行为 RS485的以太网转串行转换器)、 正在使用队列和调度、因此我不知道应该在哪里调用启用和禁用函数。 我无法找到在主函数中调用 UARTCharPut 函数的位置以及实际定义函数的位置。
我不熟悉这种编码、请提供帮助。
谢谢你。
您好!
首先、您从未提到过您正在使用引用 Enet_s2E 的以太网转串行应用。 如果您使用的是 Enet_S2E 示例、请在 serial_task.c 文件中查找 UARTChakut。 您需要四处走动以找到激活使能引脚的最佳位置。 我强烈建议您从一个简单的 UART 示例开始、并了解它在您的系统中的工作原理以及在您进入 S2E 之前将 ENABLE 引脚放置在何处、S2E 是一个非常复杂的应用。 一旦确定如何相对于 UART 事务激活 ENABLE 引脚、您便可以稍后迁移到 S2E。 您可以在下面的 TivaWare 中找到 UART 示例 /examples/boards/ek-tm4c1294xl/uart_echo.