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

查看: 10524|回复: 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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版