乐鑫技术交流
直播中

硕达科讯

9年用户 966经验值
私信 关注
[问答]

在ESP8266中使用RTS线路时遇到的疑问求解

我在ESP8266中使用 RTS 线路时遇到了一些问题(AT 版本:1.4.0.0,SDK 版本:2.1.0),基本上它永远不会激活。
Handhsake 已正确启用 CTS 和 RTS,并且 CTS 运行良好。
据我了解,当 ESP 缓冲区有更多数据的空间时,RTS 将被断言,但在这种情况下,它永远不会被断言。

我尝试在禁用 CTS 的情况下使发送大数据包的缓冲区饱和,以便 ESP 只能接收远程数据并存储在缓冲区中,但 RTS 永远不会改变。缓冲区已满或为空,RTS 永远不会改变。

对此有任何想法吗?我将不胜感激。

顺便说一句,我在 CIPSTART 命令返回的消息中发现了一些不一致的地方,但最令人惊讶的是,

AT+CIPSTART=x,"TCP","xxxxx",xxxxx   (i removed the data)
246连接

是的,连接到频道 246,最令人惊讶的是,工作......几分钟后,它重置了,但在发送或接收一些数据之前没有。
                                                                                                                                                                                                                        
               

回帖(1)

大彭

2024-7-16 17:52:08
在这种情况下,我们可以按照以下步骤来解决问题:

1. 首先,确保您的硬件连接正确。检查您的 ESP8266 模块和串口设备之间的连接,确保 RTS 和 CTS 线路正确连接。

2. 检查您的 AT 命令。确保您已经正确地发送了 AT 命令来启用 RTS 和 CTS 功能。以下是启用 RTS 和 CTS 的 AT 命令:

```
AT+UART_CUR=115200,8,1,0,3
```

这个命令将波特率设置为 115200,数据位为 8,停止位为 1,无奇偶校验,流量控制设置为 3(即启用 RTS 和 CTS)。

3. 检查您的代码逻辑。确保您在发送和接收数据时正确地处理了 RTS 和 CTS 信号。在发送数据时,确保您等待 CTS 信号变为高电平,然后再发送数据。在接收数据时,确保您在接收到足够数据后,将 RTS 信号设置为高电平。

4. 检查缓冲区大小。确保您的缓冲区大小足够大,以便在接收大量数据时不会溢出。如果缓冲区太小,可能会导致 RTS 信号无法正确地断言。

5. 检查 CIPSTART 命令的返回消息。您提到在 CIPSTART 命令返回的消息中发现了一些不一致。请仔细检查这些消息,看看是否有任何错误或警告信息,这可能会帮助您找到问题所在。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分