说不定 发表于 2015-2-4 11:03:17

stm32配置wifi模块HLK-M30作为TCP客户端 测试成功

本帖最后由 说不定 于 2015-2-10 12:31 编辑

         目前HLK-M30的串口转wifi模块到处都是,但是这些都是所有的wifi信息都不需要单片机去配置,都是一个类似串口调试助手去配置,所以当用HLK-M30作为一个产品的一部分被封在壳内后,再想去配置连接wifi这些信息的时候就比较麻烦了。现在把如何使用单片机去配置hlk-M30的信息。
首先原理图非常简单如下:

1、HLK-M30启动
在HLK-M30使用之前必须先启动它,如下。


启动代码如下:
void wifi_StartUp(void)
{
      GPIO_InitTypeDef GPIO_InitStructure;

      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC |RCC_APB2Periph_GPIOA, ENABLE);
       //ES/RST <-->GPIOC6   RST<-->GPIOC7
       GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_6 | GPIO_Pin_7 ;
      GPIO_InitStructure.GPIO_Mode= GPIO_Mode_Out_PP;
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
      GPIO_Init(GPIOC, &GPIO_InitStructure);

       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                        
          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;               
          GPIO_Init(GPIOA, &GPIO_InitStructure);

    //WIFI模块启动时序
    W5500_RST_L;
    W5500_TX_L;
    delay_ms(100);//这个延时很重要 可适当调节
    W5500_RST_H;
    delay_ms(200);
    W5500_TX_H;      
}
模块启动后状态LED会闪2下灭一下。

2、转为AT模式去配置信息(很重要)

代码实现如下:

      delay_ms(10000);//延时等待HLK-M30启动 直至稳定,否则配置不能成功
      Uart1_Init();//串口初始化
       //转为AT模式
      W5500_ESRST_L;
      delay_ms(1000);
      W5500_ESRST_H;
      delay_ms(500);

3、wifi信息配置。

//Wifi 信息配置
void wifi_config(void)
{


    printf("at+WM=2\r\n");
    printf("at+WA=0\r\n");
    printf("at+Sssid=TP-LINK_FBC\r\n");//wifi名称
    printf("at+Sssidl=11\r\n");//wifi名称长度
    printf("at+Sam=9\r\n");// 认证加密方式 wpa/wpa2_aes
    printf("at+Spw=123456\r\n");//wifi 密码
    printf("at+Spwl=6\r\n");//wifi密码长度
    printf("at+dhcp=0\r\n");//关闭自动获取IP
    printf("at+ip=192,168,1,99\r\n");//模块IP
    printf("at+mask=255,255,255,0\r\n");//子网掩码
    printf("at+gw=192,168,1,1\r\n");//网关
    printf("at+dns=192,168,1,1\r\n");//dns 没用上 随便配置的
    printf("at+UType=2\r\n");//TCP客户端
    printf("at+UIp=121.34.38.141\r\n");//目标IP
    printf("at+URPort=8384\r\n");//目标端口
    printf("at+ULPort=20013\r\n");//模块端口
    printf("at+Ub=115200\r\n");//串口配置
    printf("at+Ud=8\r\n");
    printf("at+Up=0\r\n");
    printf("at+Us=1\r\n");
    printf("at+WC=1\r\n");
    printf("at+Rb=1\r\n");

}



至此HLK-M30信息配置好了,连上wifi后状态灯会熄灭。
虽然感觉很简单 ,但是也是本人很长世间单独调试出来的,属于原创吧:lol


说不定 发表于 2015-2-4 11:06:53

发错地方了 不知道能不能改哎

arm8686 发表于 2015-2-4 11:41:17

    //WIFI模块启动时序
    W5500_RST_L;
    W5500_TX_L;

以前使用的是有线连接方案吧,W5500?:D

说不定 发表于 2015-2-4 12:40:14

arm8686 发表于 2015-2-4 11:41
//WIFI模块启动时序
    W5500_RST_L;
    W5500_TX_L;


是的刚开始使用w5500 后改成wifi模块这是我引脚定义时没改过来

wgsxsm 发表于 2015-2-5 00:11:26

马克,无线WIFI

党国特派员 发表于 2015-2-5 09:19:27

学习一下了。

说不定 发表于 2015-2-5 14:48:10

待有时间把wifi和w5500是资料一并传上来,现在实在太忙。

烟雨斜阳 发表于 2015-5-28 16:59:46

说不定 发表于 2015-2-5 14:48
待有时间把wifi和w5500是资料一并传上来,现在实在太忙。

楼主你好,我现在在使用串口转wifi,有两个问题请教您:1,目标IP,目标端口和模块端口这三个怎么设置?是根据自己需要吗?2,配置好后怎么回到透传模式?按照帖子的提示,是使用语句“at+TS=1”,可是配置语句里没这条啊。期待您的回复。

说不定 发表于 2015-5-28 17:53:18

假如我要在我的电脑上建立一个服务端,wifi模块通过我电脑所连接的路由器的wifi连接过去。
1、电脑上建立服务端
2、端口映射
登陆路由器 转发规则->虚拟服务器下设置

目标IP就是路由器的IP,目标端口号就是设置的8485,模块端口号随便给一个 比如20013什么的都可以


你说的透明传输 可能是我们用的模块不一样,你得看资料,命令可能也是不一样的。

说不定 发表于 2015-5-28 17:59:55

烟雨斜阳 发表于 2015-5-28 16:59
楼主你好,我现在在使用串口转wifi,有两个问题请教您:1,目标IP,目标端口和模块端口这三个怎么设置? ...

不好意思问题2我理解错你的意思了,他的资料上是说要发生at+TS的指令,但是我实际上测试就发送这些命令后就是透传的了 就灭加入那条指令了
页: [1] 2 3 4
查看完整版本: stm32配置wifi模块HLK-M30作为TCP客户端 测试成功