【问题标题】:Can we send command for Quectel M66 from STM32F103C8T6 via UART port?我们可以通过 UART 端口从 STM32F103C8T6 发送 Quectel M66 的命令吗?
【发布时间】:2019-09-07 11:47:24
【问题描述】:

我目前正在使用 STM32F103C8T6 和 Quectel M66 模块。我需要从 STM32 的 UART 端口发送一些命令,以便在 M66 中创建套接字连接,并通过该套接字将一些数据发送到 Quectel M66 中的服务器。有没有办法做到这一点?我正在为此使用 FreeRTOS。 STM32的UART口可以发送什么样的数据?

任何帮助将不胜感激...在此先感谢

【问题讨论】:

  • 你说的什么样的数据是什么意思。 UART 支持 8 位 数据传输,无论是 char Type* 还是 **uint8_t 类型。一般char也是8位数据。

标签: stm32 uart freertos quectel


【解决方案1】:

有两种方法可以实现:

  1. 使用模块内置的 AT 命令和 TCP/IP 堆栈。在这种模式下,您发送 AT 命令连接/侦听/发送/接收/关闭套接字。

  2. 在微控制器内部使用 PPP 和 TCP/IP 堆栈。在这种模式下,您最初使用 AT 命令配置调制解调器(无论如何您都必须这样做),然后将调制解调器切换到数据模式,此时它开始使用 PPP 协议与您通信。您可以使用它来将其与微控制器中的 TCP/IP 堆栈集成。这样您就可以使用您选择的堆栈的所有功能(套接字 API、DNS 等),并且您不限于 quectel 提供的 API。您还可以利用连接到微控制器的多个网络接口,例如执行路由。

您如何处理它完全取决于您。如果您只想要基本的套接字功能,第一种方法可能对您更好,因为它更容易工作。第二种方法需要更多的努力,但会产生更好的结果/更灵活的未来产品。

有关 AT 命令文档,请查看此链接(尤其是 TCP/IP 应用说明):https://www.quectel.com/product/m66.htm

【讨论】:

  • 我可以通过 UART 端口将 AT 命令作为字符串发送到 M66(我的意思是 uint8_t 数据类型)。 M66会理解吗?例如:UART_Transmit(&handler,"AT+QIOPEN",sizeof(AT+QIOPEN));对吗?
  • 您可能需要对命令进行行尾(使其成为“AT+QIOPEN\r\n”),但是是的,这正是您所做的。 AT 命令本质上是一个基于文本的协议。
猜你喜欢
  • 2022-10-13
  • 2017-06-14
  • 2015-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-15
相关资源
最近更新 更多