需要协助测试带硬件流控的UART实现,用于OMAP L138。我使用minicom
来模拟串行链路的另一端,我正在寻找如何配置它的洞见。
我有一个简单的应用程序,可以从OMAP通过UART发送消息到minicom。如果OMAP和minicom都未配置使用硬件流控,则可以按预期工作。当我打开硬件流控时,在minicom上看不到任何输出。
以下是我遵循的步骤列表:
- 配置minicom使用硬件流控(Ctl A-O打开minicom串口设置菜单,然后按F启用硬件流控)。
- 使用
stty
启用RTS/CTS握手:stty -F /dev/ttyS1 crtscts
。使用stty -F /dev/ttyS1 -a
命令可以确认已启用crtscts。
以上两个更改确保在终端程序和UART驱动程序中启用了硬件流控。OMAP上的UART也已配置为使用硬件流控。
但是,上面列出的对minicom的更改似乎不足以使流控正常工作。在启动应用程序后,OMAP的RTS(请求发送)信号变低,表明它想要发送数据到minicom。如果正确配置,则minicom应将OMAP的CTS(清除发送)信号变低,并开始接受数据,直到达到指定的接收缓冲区阈值。但这并没有发生。OMAP的CTS输入始终保持高电平。只是为了好玩,我试图将OMAP的RTS短接到CTS上,结果预期的消息确实出现在minicom上!以下是显示两者连接方式的图像。
根据我的尝试,看起来我在配置minicom时漏掉了一些东西。欢迎提出任何建议。
kill -STOP $(pidof minicom)
一样发送停止信号即可。要继续,请使用CONT
。 - Turbo J