你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
说不定 提问时间:2015-2-4 11:03 /
本帖最后由 说不定 于 2015-2-10 12:31 编辑

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

HLK-M30与单片机连接图

HLK-M30与单片机连接图

1、HLK-M30启动

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

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模式去配置信息(很重要)

HLK-M30状态转换

HLK-M30状态转换

代码实现如下:

        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后状态灯会熄灭。
虽然感觉很简单 ,但是也是本人很长世间单独调试出来的,属于原创吧


收藏 2 评论30 发布时间:2015-2-4 11:03

举报

30个回答
说不定 回答时间:2015-5-28 17:53:18
假如我要在我的电脑上建立一个服务端,wifi模块通过我电脑所连接的路由器的wifi连接过去。
1、电脑上建立服务端

建立服务端

建立服务端

2、端口映射
登陆路由器 转发规则->虚拟服务器  下设置
QQ截图20150528174831.jpg

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


你说的透明传输 可能是我们用的模块不一样,你得看资料,命令可能也是不一样的。
烟雨斜阳 回答时间:2015-5-28 16:59:46
说不定 发表于 2015-2-5 14:48
待有时间把wifi和w5500是资料一并传上来,现在实在太忙。

楼主你好,我现在在使用串口转wifi,有两个问题请教您:1,目标IP,目标端口和模块端口这三个怎么设置?是根据自己需要吗?2,配置好后怎么回到透传模式?按照帖子的提示,是使用语句“at+TS=1”,可是配置语句里没这条啊。期待您的回复。
说不定 回答时间:2015-5-28 17:59:55
烟雨斜阳 发表于 2015-5-28 16:59
楼主你好,我现在在使用串口转wifi,有两个问题请教您:1,目标IP,目标端口和模块端口这三个怎么设置? ...

不好意思  问题2我理解错你的意思了,他的资料上是说要发生at+TS的指令,但是我实际上测试就发送这些命令后就是透传的了 就灭加入那条指令了
说不定 回答时间:2015-2-4 11:06:53
发错地方了 不知道能不能改哎
arm8686 回答时间:2015-2-4 11:41:17
    //WIFI模块启动时序
    W5500_RST_L;
    W5500_TX_L;

以前使用的是有线连接方案吧,W5500?
说不定 回答时间: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 19:11:14
说不定 发表于 2015-5-28 17:59
不好意思  问题2我理解错你的意思了,他的资料上是说要发生at+TS的指令,但是我实际上测试就发送这些命令 ...

谢谢楼主的答复,我用的是手机上的app,网络调试助手,是不是也可以这样建立,还是其他方法呢?
moyanming2013 回答时间:2015-5-28 21:03:18
你使用PC通过串口往WIFI芯片发送AT指令,与
你使用MCU通过串口往WIFI芯片发送AT指令有什么区别那?
对于WIFI芯片来说PC和MCU都可以是上位机,都可以通过上位机写AT指令。
不用非得用PC才能写AT命令字啊!
说不定 回答时间:2015-5-29 10:48:52
烟雨斜阳 发表于 2015-5-28 19:11
谢谢楼主的答复,我用的是手机上的app,网络调试助手,是不是也可以这样建立,还是其他方法呢? ...

手机建立wifi是可以连接到wifi上去的,不过你作为一个TCP客户端得要连接一个服务端啊,手机没法建立TCP服务端吧,可以使用笔记本电脑,或者WINDOWS的平板电脑。
说不定 回答时间:2015-5-29 10:49:26
moyanming2013 发表于 2015-5-28 21:03
你使用PC通过串口往WIFI芯片发送AT指令,与
你使用MCU通过串口往WIFI芯片发送AT指令有什么区别那?
对于WIF ...

没什么区别  都可以用
烟雨斜阳 回答时间:2015-5-29 11:06:53
本帖最后由 烟雨斜阳 于 2015-5-29 12:35 编辑
说不定 发表于 2015-5-29 10:48
手机建立wifi是可以连接到wifi上去的,不过你作为一个TCP客户端得要连接一个服务端啊,手机没法建立TCP服 ...

这里远程主机显示的IP是哪的?不是电脑IP,电脑IP不应该是下面的红圈里的吗?

2345_image_file_copy_1.jpg

这是我用的软件显示情况

这是我用的软件显示情况
123下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版