在两款模组上发起 PPP 拨号时,AT 拨号串略有不同:
-
ML307R
-
只需使用最常见的拨号命令:
ATD*99#
-
该命令会自动使用第 1 号 PDP 上下文(在执行过
AT+CGDCONT=1,"IP","<your_apn>"
之后),返回CONNECT
后进入 PPP 数据模式。 (Sierra Wireless Forum)
-
-
ML307A
-
由于要显式指定上下文 ID,拨号命令需带上 context 参数:
ATD*99***1#
-
这里尾部三个星号再跟一个数字 “1” 就是告诉模组使用第 1 号 PDP 上下文。多数情况下,这个写法和
ATD*99#
功能等效,但 ML307A 固件对此要求更严格。 (Sierra Wireless Forum)
-
建议的完整拨号流程(以 ML307A 为例)
AT+CGDCONT=1,"IP","<your_apn>" ← 定义 PDP 上下文
OK
AT+CGACT=1,1 ← 激活第 1 号 PDP 上下文
OK
ATD*99***1# ← 发起 PPP 拨号
CONNECT
-
如果是 ML307R,可以把最后一行改成
ATD*99#
即可。 -
拨号成功后,串口就会进入 PPP 数据模式,ESP32 上使用
esp_modem_dce_start_ppp()
时也会默认发送对应的 ATD 命令;如果需要手动指定,可在调用前通过:esp_modem_dte_generic_command(dce, "ATD*99***1#\r", NULL, 0);
来覆盖默认拨号串。
这样就能兼容两款模组的拨号差异。