TA的每日心情 | 慵懒 2015-5-29 12:01 |
---|
签到天数: 11 天 连续签到: 1 天 [LV.3]偶尔看看II
|
9、WIFI
9.1资料与工具下载
为了更好地理解和使用Wi-Fi模块的各项功能,您首先需要下载和学习以下资料,这些文档资料需要通过Internet下载:
提供下载地址:
《AN0003_EMW_DataTransferExample.pdf》:透明传输模块使用范例,详细描述了模块在各种模式下的透明传输的使用方法
《RM0001_EMW3280》:EMW模块使用说明,详细描述了模块的各项功能
《RM0002_EMWToolBox》:EMW模块配置软件使用说明,详细描述了如何配置模块的各项参数
《DS001_EMW3280_V2.pdf》:EMW模块的电气特性及引脚定义封装说明。
《RM0001_EMW3280_V02060288》:EMW模块的工作模式及命令控制集
需要的工具软件:
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{// WIFIu8 wifi_mode; //Wlan802_11IBSS(0), Wlan802_11Infrastructure(1)u8 wifi_ssid[32]; //u8 wifi_wepkey[16]; // 40bit and 104 bitu8 wifi_wepkeylen; // 5, 13// TCP/IPu8 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 IPu8 net_mask[16]; // 255.255.255.0u8 gateway_ip_addr[16]; // gateway ip addressu8 portH; // High Byte of 16 bitu8 portL; // Low Byte of 16 bitu8 connect_mode; // 0:server 1:clientu8 use_dhcp; // 0:disale, 1:enableu8 use_udp; // 0:use TCP,1:use UDP// COMu8 UART_buadrate; // 0:9600, 1:19200, 2:38400, 3:57600, 4:115200u8 DMA_buffersize; // 0:2, 1:16, 2:32, 3:64, 4:128, 5:256, 6:512u8 use_CTS_RTS; // 0:disale, 1:enableu8 parity; // 0:none, 1:even parity, 2dd parityu8 data_length; // 0:8, 1:9u8 stop_bits; // 0:1, 1:0.5, 2:2, 3:1.5// DEVICE// u8 device_num; // 0 - 255u8 IO_Control; // 0 - 255u8 sec_mode; // 0 = wep, 1=wpa psk, 2=noneu8 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公司联系。技术问题请到论坛发帖。 |
|