【STM32 物联网】基础AT指令与Wifi功能AT指令详解

文章目录

  • 前言
  • 一、基础AT指令
  • 1.1 测试AT启动
  • 1.2 重启模块
  • 1.3 查看版本信息
  • 1.4 进入深度睡眠模式
  • 1.5 开关回显
  • 1.6 恢复出场设置
  • 1.7 UART配置
  • 设置临时设置,不保存到Flash
  • 设置串口保存到Flash
  • 1.8 设置sleep模式
  • 查询当前sleep模式
  • 设置当前sleep模式
  • 二、基础Wifi功能AT指令
  • 2.1 Station模式与SoftAP模式是什么?
  • 2.2 设置当前Wifi模式
  • 不保存到Flash
  • 保存到Flash
  • 2.3 连接Wifi
  • 不保存到Flash
  • 保存到Flash
  • 说明
  • 总结

  • 前言

    在STM32物联网应用中,与通信模块进行交互通常涉及到使用AT指令。本文将介绍两个重要的AT指令集:基础AT指令和基础Wifi功能AT指令。基础AT指令用于与通用的通信模块(如GSM模块)进行基本的串口通信和控制,而基础Wifi功能AT指令则专注于与Wifi模块进行交互,实现连接网络、发送数据等基本Wifi功能。


    一、基础AT指令

    1.1 测试AT启动

    我们可以使用AT指令测试AT启动

    ESP8266_SendCommand("AT\r\n");
    HAL_Delay(1000);
    

    响应为OK

    1.2 重启模块

    我们可以使用AT+RST指令重启模块
    响应为OK

    ESP8266_SendCommand("AT+RST\r\n");
    HAL_Delay(1000);
    

    1.3 查看版本信息

    我们可以使用AT+GMR查看版本信息
    响应为:

    <AT version info>
    <SDK version info>
    <compile time>
    OK
    
    ESP8266_SendCommand("AT+GMR\r\n");
    HAL_Delay(1000);
    

    1.4 进入深度睡眠模式

    我们可以使用AT+GSLP=<time>指令进入深度睡眠,time单位为ms
    响应为<time> OK

    ESP8266_SendCommand("AT+GSLP=<time>\r\n");
    HAL_Delay(1000);
    

    deep-sleep 功能需要硬件上支持,将 XPD_DCDC 通过 0 欧姆电阻连接到EXT_RSTB,用作 deep-sleep 唤醒。

    1.5 开关回显

    我们可以使用ATE指令进入深度睡眠,time单位为ms
    响应为OK

    ESP8266_SendCommand("ATE\r\n");
    HAL_Delay(1000);
    

    1.6 恢复出场设置

    我们可以使用AT+RESTORE指令进入深度睡眠,time单位为ms
    响应为OK

    ESP8266_SendCommand("AT+RESTORE\r\n");
    HAL_Delay(1000);
    

    注意:
    恢复出厂设置,将擦除所有保存到 flash 的参数,恢复为默认参数。
    恢复出厂设置会导致机器重启。

    1.7 UART配置

    设置临时设置,不保存到Flash

    设置指令:

    AT+UART_CUR=<baudrate>, 
    <databits>,<stopbits>, 
    <parity>,<flow control>
    

    参数为:波特率、数据位、停止位、校验位、流控。
    <flow control> 流控
    0:不使能流控
    1:使能 RTS
    2: 使能 CTS
    3: 同时使能 RTS 和 CTS

    注意
    本设置不保存到 flash
    使用流控需要硬件支持流控。MTCK 为 UARTO CTS;MTDO为 UARTO RTS
    波特率支持范围: 110~115200*40

    ESP8266_SendCommand("AT+UART_CUR=115200,8,1,0,3\r\n");
    HAL_Delay(1000);
    

    设置串口保存到Flash

    设置指令:

    AT+UART_DEF=<baudrate>, 
    <databits>,<stopbits>, 
    <parity>,<flow control>
    

    1.8 设置sleep模式

    查询当前sleep模式

    查询指令:AT+SLEEP?

    设置当前sleep模式

    设置指令:AT+SLEEP=<sleep mode>
    参数:
    0:禁用休眠模式
    1: light-sleep 模式
    2: modem-sleep 模式

    ESP8266_SendCommand("AT+SLEEP=0\r\n");
    HAL_Delay(1000);
    

    二、基础Wifi功能AT指令

    2.1 Station模式与SoftAP模式是什么?

    Station模式:就像是你的手机或电脑连接到家里的WiFi一样。在Station模式下,设备可以连接到现有的WiFi网络,像是一台普通的客户端,用来访问互联网、收发数据等。

    SoftAP模式:相当于你的手机或电脑变成了一个热点。在SoftAP模式下,设备可以充当WiFi接入点,允许其他设备连接到它,就像连接到路由器一样。这种模式常用于创建临时网络或者设备之间的直接通信,比如设置设备的初始配置信息。

    2.2 设置当前Wifi模式

    不保存到Flash

    获取可用的wifi模式:AT+CWMODE_CUR=?
    响应:

    +CWMODE_CUR:( <mode>取值列表)
    OK
    

    参数说明:
    <mode>1 : station 模式
    2: softAP模式
    3 : softAP + station 模式

    获取当前Wifi模式;AT+CWMODE CUR?

    设置当前wifi模式:AT+CWMODE CUR= <mode>

    保存到Flash

    对于保存到Flash,仅仅是把CUR替换成DEF,在这里不多赘述

    2.3 连接Wifi

    不保存到Flash

    查询 ESP8266 station 当前连接的 AP
    查询指令:AT+CWJAP_CUR?
    响应
    + CWJAP CUR:<ssid>,<bssid>,<channel>,<rssi> OK
    参数说明:
    <ssid> string, AP’s SSID

    设置 ESP8266 station 需连接的 AP
    设置指令:
    AT+CWJAP_CUR =<ssid>,<pwd>[,<bssid>]
    响应:
    OK或者+CWJAP:<error code> FAIL
    参数说明:
    <ssid> 字符串参数,
    目标AP的 SSID
    <pwd> 字符串参数,密码最长 64 字节 ASCII
    [<bssid>] 字符串参数,目标 AP 的 bssid(MAC 地址),一般用于有多个SSID 相同的 AP 的情况
    <error code> 仅供参考,并不可靠:

    1. 连接超时
    2. 密码错误
    3. 找不到目标 AP
    4. 连接失败

    参数设置需要开启 station 模式,若 SSID 或者 password 中含有特殊
    符号,例如",或者,“ 或者 '时,需要进行转义,其它字符转义无效

    保存到Flash

    对于保存到Flash仅仅是把CUR变成DEF,在这里不多赘述

    说明

    对于AT指令太过于多,我们这里并不能写完全,如果没有提到,会在后面的项目中给大家写到的


    总结

    通过本文的介绍,我们对STM32物联网应用中的两种重要AT指令集有了基本了解。基础AT指令为与通用通信模块的交互提供了基础,包括串口通信、配置参数等基本操作。另一方面,基础Wifi功能AT指令专注于与Wifi模块的交互,使得STM32可以通过Wifi连接网络,实现更复杂的物联网功能。这两种AT指令集为STM32在物联网应用中提供了强大的控制手段,开发者可以通过发送这些指令来实现设备之间的通信、数据传输等功能。通过深入学习这些指令,开发者可以更好地利用STM32的物联网能力,构建更灵活、强大的物联网应用。如果您有其他问题或需要更详细的信息,请随时告诉我。

    物联沃分享整理
    物联沃-IOTWORD物联网 » 【STM32 物联网】基础AT指令与Wifi功能AT指令详解

    发表评论