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

查看: 10525|回复: 30

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

[复制链接]

4

主题

88

回帖

0

蝴蝶豆

高级会员

最后登录
2019-4-25
发表于 2015-2-4 11:03:17 | 显示全部楼层 |阅读模式
本帖最后由 说不定 于 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后状态灯会熄灭。
虽然感觉很简单 ,但是也是本人很长世间单独调试出来的,属于原创吧


<
回复

使用道具 举报

4

主题

88

回帖

0

蝴蝶豆

高级会员

最后登录
2019-4-25
 楼主| 发表于 2015-2-4 11:06:53 | 显示全部楼层
发错地方了 不知道能不能改哎
回复 支持 反对

使用道具 举报

8

主题

390

回帖

2

蝴蝶豆

论坛元老

最后登录
2019-10-14
发表于 2015-2-4 11:41:17 | 显示全部楼层
    //WIFI模块启动时序
    W5500_RST_L;
    W5500_TX_L;

以前使用的是有线连接方案吧,W5500?
回复 支持 反对

使用道具 举报

4

主题

88

回帖

0

蝴蝶豆

高级会员

最后登录
2019-4-25
 楼主| 发表于 2015-2-4 12:40:14 | 显示全部楼层
arm8686 发表于 2015-2-4 11:41
//WIFI模块启动时序
    W5500_RST_L;
    W5500_TX_L;

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

使用道具 举报

8

主题

235

回帖

0

蝴蝶豆

金牌会员

最后登录
2018-12-7
发表于 2015-2-5 00:11:26 来自手机 | 显示全部楼层
马克,无线WIFI
回复 支持 反对

使用道具 举报

76

主题

5715

回帖

4

蝴蝶豆

论坛元老

最后登录
2020-10-15
发表于 2015-2-5 09:19:27 | 显示全部楼层
学习一下了。
回复 支持 反对

使用道具 举报

4

主题

88

回帖

0

蝴蝶豆

高级会员

最后登录
2019-4-25
 楼主| 发表于 2015-2-5 14:48:10 | 显示全部楼层
待有时间把wifi和w5500是资料一并传上来,现在实在太忙。
回复 支持 反对

使用道具 举报

0

主题

8

回帖

0

蝴蝶豆

新手上路

最后登录
2015-5-31
发表于 2015-5-28 16:59:46 | 显示全部楼层
说不定 发表于 2015-2-5 14:48
待有时间把wifi和w5500是资料一并传上来,现在实在太忙。

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

使用道具 举报

4

主题

88

回帖

0

蝴蝶豆

高级会员

最后登录
2019-4-25
 楼主| 发表于 2015-5-28 17:53:18 | 显示全部楼层
假如我要在我的电脑上建立一个服务端,wifi模块通过我电脑所连接的路由器的wifi连接过去。
1、电脑上建立服务端

建立服务端

建立服务端

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

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


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

使用道具 举报

4

主题

88

回帖

0

蝴蝶豆

高级会员

最后登录
2019-4-25
 楼主| 发表于 2015-5-28 17:59:55 | 显示全部楼层
烟雨斜阳 发表于 2015-5-28 16:59
楼主你好,我现在在使用串口转wifi,有两个问题请教您:1,目标IP,目标端口和模块端口这三个怎么设置? ...

不好意思  问题2我理解错你的意思了,他的资料上是说要发生at+TS的指令,但是我实际上测试就发送这些命令后就是透传的了 就灭加入那条指令了
回复 支持 反对

使用道具 举报

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