本帖最后由 WFX777888 于 2018-11-28 18:10 编辑
这个问题就是弄不明白啊8266UDP传输的
#include "driver/uart.h"
#include "user_main.h"
#include "gpio.h"
struct espconn PhoneConn;
esp_udp PhoneConnUdp;
void ICACHE_FLASH_ATTR user_udp_send(void){
}
void ICACHE_FLASH_ATTR user_udp_sent_cb(void *arg){
}
void ICACHE_FLASH_ATTR user_udp_recv_cb(void *arg,
char *pdata,
unsigned short len)
{
if(pdata[0]=='W')//手机来信息
{
GetDHT11(); //获取DHT11的温湿度返回手机数据
SendData(); //串口打印温湿度
//os_sprintf(wenshiduudp,"%d *C-----%d %%",wendu,shidu);
//espconn_sent((struct espconn *)arg,wenshiduudp,strlen(wenshiduudp));
}
}
void ICACHE_FLASH_ATTR Wifi_conned(void *arg){
static uint8 count=0;
uint8 status;
os_timer_disarm(&connect_timer);
count++;
status=wifi_station_get_connect_status();
if(status==STATION_GOT_IP){
os_printf("Wifi connect success!");
wifi_set_broadcast_if(STATIONAP_MODE);
user_udp_espconn.type=ESPCONN_UDP;
user_udp_espconn.proto.udp=(esp_udp *)os_zalloc(sizeof(esp_udp));
user_udp_espconn.proto.udp->local_port=2525;
user_udp_espconn.proto.udp->remote_port=1112;
const char udp_remote_ip[4]={255,255,255,255};
os_memcpy(user_udp_espconn.proto.udp->remote_ip,udp_remote_ip,4);
espconn_regist_recvcb(&user_udp_espconn,user_udp_recv_cb);
espconn_regist_sentcb(&user_udp_espconn,user_udp_sent_cb);
espconn_create(&user_udp_espconn);
user_udp_send();
return;
}else{
if(count>=7){
os_printf("Wifi connect fail!");
return;
}
}
os_timer_arm(&connect_timer,2000,NULL);
}
void ICACHE_FLASH_ATTR scan_done(void *arg,STATUS status){
uint8 ssid[33];
struct station_config stationConf;
if (status == OK)
{
struct bss_info *bss_link = (struct bss_info *)arg;
bss_link = bss_link->next.stqe_next;//ignore first
while (bss_link != NULL)
{
os_memset(ssid, 0, 33);
if (os_strlen(bss_link->ssid) <= 32)
{
os_memcpy(ssid, bss_link->ssid, os_strlen(bss_link->ssid));
}
else
{
os_memcpy(ssid, bss_link->ssid, 32);
}
os_printf("+CWLAP:(%d,\"%s\",%d,\""MACSTR"\",%d)\r\n",
bss_link->authmode, ssid, bss_link->rssi,
MAC2STR(bss_link->bssid),bss_link->channel);
bss_link = bss_link->next.stqe_next;
}
}
else
{
}
}
void to_scan(void) { wifi_station_scan(NULL,scan_done); }
void user_init()
{
struct softap_config config;
uart_init(115200,115200);
GetDHT11(); //获取DHT11的温湿度
SendData(); //串口打印温湿度
wifi_set_opmode(0x03);
wifi_softap_get_config(&config);
os_memcpy(config.ssid,"ESP8226",strlen("ESP8226"));
os_memcpy(config.password,"123456789",strlen("123456789"));
config.ssid_len=strlen("ESP8226");
config.authmode=AUTH_WPA_WPA2_PSK;
config.beacon_interval=100;
config.channel=1;
config.max_connection=4;
config.ssid_hidden=0;
wifi_softap_set_config(&config);
system_init_done_cb(to_scan);
}
void user_rf_pre_init(){}
|