9、WIFI
9.1资料与工具下载
为了更好地理解和使用Wi-Fi模块的各项功能,您首先需要下载:
需要的工具软件:
EMW Tool Box: PC端配置Wi-Fi模块参数工具软件
TCP/UDP测试工具:用于在PC端与WiFi模块建立TCP/UDP连接,实现数据收发串口调试助手或者超级终端:用于配合WiFi数据收发调试工具软件
9.2实验描述
该实验讲解了如何运用Mxchip提供的EMSP_API函数来配置Wi-Fi模块的参数,连接无线网络,与同网段中的PC建立TCP连接,并打开PC端安装TCP/UDP测试工具。TCP/UDP测试工具发送的数据,野火STM32开发板通过Wi-Fi将接收到的数据返回给PC,达到回显的功能。
9.2.1实验现象
读取到Wi-Fi模块的配置参数,并且显示到LCD屏
读取搜索到的周围的无线网络和信号强度
野火STM32开发板接收到PC端TCP/UDP测试工具发送的数据,通过Wi-Fi模块发送给PC,达到回显的功能
9.2.2硬件连接图
串口连接说明
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文档
9.2.3 EMSP_API函数
EMSP_API接口函数提供了一系列API函数,用户通过调用这些函数可以轻松地在各种嵌入式设备上实现对EMW系列Wi-Fi模块的控制和数据传输。现在该接口函数随和WiFi资料随野火STM32开发板例程一并提供:
如果大家购买了野火STM32开发板和Mxchip EMW系列Wi-Fi模块,就可以在开发板上调试这些例程。
EMSP_API函数库由标准C编写而成,可以直接加入到常用的嵌入式开发环境,如KEIL,IAR等。
EMSP_API函数由以下三个C语言文件及其对应的头文件构成。
emw38x_hal.c
该代码实现了EMW系列模块和嵌入式设备之间的硬件接口。用户需要根据自己的硬件环境实现相应的函数
EMSP.c
该代码实现了EMSP命令的协议处理。
EMSP_API.c
该代码提供给用户用于操控模块的API函数,用户只需调用这些函数,就可以实现对模块的配置和操作。
9.2.4 API函数一览
函数名 | vs8 EM380C_Init(void) |
功能 | 用于初始化模块,和与模块通讯的UART接口,并使模块处于能够响。 |
返回值 | -1 : 执行命令失败0 : 执行命令成功 |
函数名 | vs8 EM380C_Get_ver(u32* version) |
功能 | 用于获得EMW系列模块的固件版本号。 |
返回值 | -1 : 执行命令失败0 : 执行命令成功 |
函数名 | vs8 EMSP_Get_status(EM380C_status_TypeDef* EM380C_status) |
功能 | 用于获得Wi-Fi模块的网络连接状态。 |
输入 | 用于存放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号和相应的信号强度。 |
输入 | 用于存放无线的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模块当前的配置参数。 |
输入 | 参数结构体的地址,成功执行命令后,模块当前的参数会写入这个地址。参数结构体如下。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的配置参数。 |
输出 | 参数结构体的地址,成功执行命令后,会将该地址上的数据写入到WiFi模块里面去。结构体与上面GetConfig参数一致。 |
返回值 | -1 : 执行命令失败0 : 执行命令成功 |
函数名 | u32 EM380C_Send_Data(u8* Data,u32 len) |
功能 | 用于通过Wi-Fi模块发送数据 |
输出1 | 保存发送数据的内存空间的起始地址 |
输出2 | 发送的数据长度 |
返回值 | >0:执行命令成功,返回发送的数据长度0 : 执行命令成功 |
函数名 | vs8 EM380C_Set_Mode(EM380C_mode_TypeDef mode) |
功能 | 设置Wi-Fi模块模式,命令模式和透传模式 |
输入 | 用于存放Wi-Fi模块的模式结构体typedef enum{
config_mode = 0x0, //命令模式 DTU_mode = 0x1, //透传模式 } EM380C_mode_TypeDef;
|
返回值 | -1 : 执行命令失败0 : 执行命令成功 |
9.2.5 MAIN函数讲解
第一步,初始化硬件接口(其实这一部拉低STATUS引脚,初始化号相应硬件接口即可)
第二步,设置Wi-Fi模块参数
设置模块参数,并通过EMSP_SET_CONFIG命令发送给Wi-Fi模块。
模块详细的功能可参考"Wi-Fi模块datasheet"文件夹EMW_DataTransferExamples.pdf,里面详细介绍了各种模式的数据透传。
第三步,重启Wi-Fi模块,模块的参数配置好之后,需要重启Wi-Fi模块才能生效
第四步,启动Wi-Fi模块,通过发送EMSP_CMD_START命令,此时模块内部TCP/IP协议栈已经跑启,模块上红灯常亮
第五步,拉高STATUS引脚,模块进入透传模式
PS:直接拉高STATUS引脚可直接启动Wi-Fi,跳过第四步
9.3其他说明:
EMSP详细命令可参考“datasheet”文件夹中EMW3280.pdf文档。
模块还可通过PC端的配置工具EMW Tool Box配置模块参数,具体使用可参考“datasheet”文件夹中EMWToolBox2.pdf文档。
9.4技术支持
整个WiFi的例程讲解到这里就结束了,大家如果想要更详细的资料可以跟Fire或者Mxchip公司联系。技术问题请到论坛发帖。