如何使用EMSP_API函数库配置Wi-Fi参数
实验描述:
      该实验讲解了如何运用Mxchip提供的EMSP_API函数来配置Wi-Fi模块的参数,连接无该实验讲解了如何运用Mxchip提供的EMSP_API函数来配置Wi-Fi模块的参数,连接无线网络,与同网段中的PC建立TCP连接,并打开PC端安装TCP/UDP测试工具。
               
      实验现象:
      读取到Wi-Fi模块的配置参数,并且显示到LCD屏
     
     
读取搜索到的周围的无线网络和信号强度
     
      野火STM32开发板接收到PC端TCP/UDP测试工具发送的数据,通过Wi-Fi模块发送给PC,达到回显的功能
   
WiFi硬件连接图:
         
串口连接说明
                RXD - PA9
                TXD - PA10
                CTS - PA12
                RTS - PA11
                STATUS - PB12    状态脚
                Wake up - PB13    唤醒脚
                IO1 - PB14  帧控制
  SPI接口说明:
          PA4 - SPI_CS
          PA5 - SPI_CLK
          PA6 - SPI_MISO
          PA7 - SPI_MOSI
          PC7 - INT
          PC6 - RECV
          PB12 - STATUS
          PB13 - Wakeup
          SPI接口模块的WiFi例程暂时没有,等到以后做了之后会发布
PS:引脚的具体定义及功能请参考“datasheet”文件夹中  EMW3280_V2.pdf文档
EMSP_API函数:
EMSP_API接口函数提供了一系列API函数,用户通过调用这些函数可以轻松地在各种嵌入式设备上实现对EMW系列Wi-Fi模块的控制和数据传输。现在该接口函数随和WiFi资料随野火STM32开发板例程一并提供:
    如果大家购买了野火STM32开发板和Mxchip EMW系列Wi-Fi模块,就可以在开发板上调试这些例程。
    EMSP_API函数库由标准C编写而成,可以直接加入到常用的嵌入式开发环境,如KEIL,IAP等。
  EMSP_API函数由以下三个C语言文件及其对应的头文件构成。
                                                   
1.   emw38x_hal.c
      该代码实现了EMW系列模块和嵌入式设备之间的硬件接口。用户需要根据
      自己的硬件环境实现相应的函数
2.   EMSP.c
      该代码实现了EMSP命令的协议处理。
      3.    EMSP_API.c
            该代码提供给用户用于操控模块的API函数,用户只需调用这些函数,就可
            以实现对模块的配置和操作。
API函数一览
      vs8 EM380C_Init(void)
      函数功能:用于初始化模块,和与模块通讯的UART接口,并使模块处于能够响           
                      应EMSP命令的状态
      返回值:-1 :  执行命令失败
                    0  :  执行命令成功
      vs8 EM380C_Get_ver(u32* version)
    函数功能:用于获得EMW系列模块的固件版本号
      参数1(IN) :用于存放获得的EMW的固件版本号的地址
      返回值:-1 :  执行命令失败
                    0  :  执行命令成功
      vs8 EMSP_Get_status(EM380C_status_TypeDef* EM380C_status)
    函数功能:用于获得Wi-Fi模块的网络连接状态
    参数1(IN):用于存放Wi-Fi的网络连接状态结构体地址
    typedef struct{
        EM380C_TCPstatus_TypeDef TCPstatus;
        EM380C_WiFistatus_TypeDef  WiFistatus;
    } EM380C_status_TypeDef;
    返回值:-1:执行命令失败
                    0:执行命令成功
        vs8 EM380C_Get_APList(EM380C_APLst_TypeDef* EM380C_APLst)
        函数功能:用于获得区域内无线AP的SSID号和相应的信号强度
        参数1(IN):用于存放无线的AP的SSID号和相应的信号强度的线性表的起始 
                            地址
        typedef struct {
              char  AP_NAME[20];
              float    AP_signal;
        } EM380C_APLst_TypeDef;
        返回值:-1:执行命令失败
                      >=0:执行命令成功,获得的AP信息的数量
    vs8 EM380C_Startup(void)
    函数功能:启动Wi-Fi模块的TCP/IP网络连接
    返回值:-1:执行命令失败
                    0:执行命令成功
    vs8 EM380C_Get_RF_POWER(EM380C_RF_POWER_TypeDef*RF_POWER)
函数功能:获得Wi-Fi的射频功率
recv函数
参数1:用于存放获得模块的Wi-Fi功率最小值,最大值和当前值
返回值:-1:执行命令失败
              0:执行命令成功
vs8 EM380C_Get_Config(EM380C_parm_TypeDef* EM380C_Parm)
      函数功能:用于获得Wi-Fi模块当前的配置参数
      参数1(IN):参数结构体的地址,成功执行命令后,模块当前的参数会写入这个 
                        地址。参数结构体如下。
      typedef struct
    {
    // WIFI
    u8 wifi_mode;        // Wlan802_11IBSS(0), Wlan802_11Infrastructure(1)
    u8 wifi_ssid[32];    //
    u8 wifi_wepkey[16];    // 40bit and 104 bit
    u8 wifi_wepkeylen;    // 5, 13
    // TCP/IP
    u8 local_ip_addr[16];       
    u8 remote_ip_addr[16];        // if em380 is server, it is NOT used;        if em380 is client, it is server's IP
    u8 net_mask[16];    // 255.255.255.0
    u8 gateway_ip_addr[16];        // gateway ip address
    u8 portH;            // High Byte of 16 bit
    u8 portL;            // Low Byte of 16 bit
    u8 connect_mode;    // 0:server  1:client
    u8 use_dhcp;        // 0:disale, 1:enable
    u8 use_udp;            // 0:use TCP,1:use UDP
    // COM
    u8 UART_buadrate;    // 0:9600, 1:19200, 2:38400, 3:57600, 4:115200
    u8 DMA_buffersize;    // 0:2, 1:16, 2:32, 3:64, 4:128, 5:256, 6:512
    u8 use_CTS_RTS;        // 0:disale, 1:enable
    u8 parity;            // 0:none, 1:even parity, 2:odd parity
    u8 data_length;        // 0:8, 1:9
    u8 stop_bits;        // 0:1, 1:0.5, 2:2, 3:1.5
    // DEVICE
//    u8 device_num;        // 0 - 255
    u8 IO_Control;        // 0 - 255
    u8 sec_mode;        // 0 = wep, 1=wpa psk, 2=none
          u8 wpa_psk[32];
} EM380C_parm_TypeDef;
返回值:-1:执行命令失败
              0:执行命令成功
vs8 EM380C_Set_Config(EM380C_parm_TypeDef* EM380C_Parm)
函数功能:用于设置Wi-Fi的配置参数
参数1(OUT):参数结构体的地址,成功执行命令后,会将该地址上的数据写入到
                            WiFi模块里面去。结构体与上面GetConfig参数一致。
        返回值:-1:执行命令失败
                      0:执行命令成功
        u32 EM380C_Send_Data(u8* Data,u32 len)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。