我想在stm32中写入一段程序,通过该段程序,控制ESP8266模块(我没有使用历程中的LCD模块),从而实现将程序中的一些数据循环传送给同一局域网下的笔记本电脑。
然而现在遇到的问题是,wifi模块可以连接到局域网上,却没法和笔记本电脑进行联系。
[mw_shl_code=c,true]int main(void)
{
u8 key; //保存键值
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
delay_init(168); //初始化延时函数
KEY_Init(); //按键初始化
uart_init(115200); //初始化串口1波特率为115200
usart3_init(115200); //初始化串口3波特率为115200
while(atk_8266_send_cmd("AT","OK",20))//检查WIFI模块是否在线
{
atk_8266_quit_trans();//退出透传
atk_8266_send_cmd("AT+CIPMODE=0","OK",200); //关闭透传模式
}
atk_8266_send_cmd("AT+CWMODE=1","OK",50); //设置WIFI STA模式
atk_8266_send_cmd("AT+RST","OK",20); //DHCP服务器关闭(仅AP模式有效)
delay_ms(1000); //延时3S等待重启成功
delay_ms(1000);
delay_ms(1000);
delay_ms(1000);
atk_8266_send_cmd("AT+CWJAP=\"Experiment\",\"66666666\"","CONNECT OK",50);//设置无线参数:ssid,密码
//while(atk_8266_send_cmd(p,"WIFI GOT IP",300)); //连接目标路由器,并且获得IP
//atk_8266_send_cmd("AT+CIFSR"," ",50); //查询模块IP
atk_8266_send_cmd("AT+CIPMUX=0","OK",20); //0:单连接,1:多连接
atk_8266_send_cmd("AT+CIPSTART=\"TCP\",\"192.168.1.112\",8080","CONNECT OK",50); //连接到server
atk_8266_send_cmd("AT+CIPMODE=1","OK",50); //开启透传模式
atk_8266_send_cmd("AT+CIPSEND","OK",50); //开始透传
while(1)
{
key=KEY_Scan(0); //得到键值
atk_8266_send_data("好的","OK",50); //传输数据“好的”
if(key)
{
atk_8266_quit_trans();
atk_8266_send_cmd("AT+CIPMODE=0","OK",20); //关闭透传模式
break;
}
delay_ms(1000);
}
}
[/mw_shl_code]
[mw_shl_code=c,true]即atk_8266_send_cmd("AT+CIPSTART=\"TCP\",\"192.168.1.112\",8080","CONNECT OK",50); //连接到server[/mw_shl_code]
该步没法使wifi模块和笔记本进行连接。
我调用的函数,都是esp8266例程中的函数。
不知道该怎么解决这个问题
|