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