文章目录
sntp:即简单网络时间协议(Simple Network Time Protocol)
操作步骤:
- 初始化
void ICACHE_FLASH_ATTR
user_init(void)
{
os_printf("SDK version:%s\n", system_get_sdk_version());
led_init();
my_sntp_init();
user_wifi_connect();
}
- SNTP初始化并设置软件定时器每隔1秒获取一次网络时间;
os_timer_t sntp_read_timer;
LOCAL void ICACHE_FLASH_ATTR
sntp_read_timer_cb(void *arg)
{
uint32_t time = sntp_get_current_timestamp();
os_printf("time:%d\r\n",time);
os_printf("date:%s\r\n",sntp_get_real_time(time));
}
void ICACHE_FLASH_ATTR
my_sntp_init(void)
{
sntp_setservername(0,"0.cn.pool.ntp.org");
sntp_setservername(1,"1.cn.pool.ntp.org");
sntp_setservername(2,"2.cn.pool.ntp.org");
sntp_init();
os_timer_disarm(&sntp_read_timer);
os_timer_setfn(&sntp_read_timer, sntp_read_timer_cb , NULL);
os_timer_arm(&sntp_read_timer,1000,1);
}
- wifi连接成功后,点亮LED灯;
os_timer_t checkTimer_wifistate;
LOCAL void ICACHE_FLASH_ATTR
check_wifi_connect_state(void)
{
uint8 getState;
getState = wifi_station_get_connect_status();
//查询 ESP8266 WiFi station 接口连接 AP 的状态
if (getState == STATION_GOT_IP)
{
LED_ON;
os_printf("wifi connect ok \r\n");
os_timer_disarm(&checkTimer_wifistate);
}
else
{
LED_OFF;
}
}
void ICACHE_FLASH_ATTR
user_wifi_connect(void) //在user_init函数中调用该函数
{
wifi_set_opmode(STATION_MODE); //设置为STATION_MODE模式
struct station_config stationConf;
os_strcpy(stationConf.ssid, "canbo-418-2.4G");//改成你自己的 路由器的用户名
os_strcpy(stationConf.password, "canbo418"); //改成你自己的 路由器的密码
wifi_station_set_config(&stationConf); //设置WiFi station接口配置,并保存到 flash
wifi_station_connect(); //连接路由器
os_timer_disarm(&checkTimer_wifistate); //取消定时器定时
os_timer_setfn(&checkTimer_wifistate, (os_timer_func_t *) check_wifi_connect_state, NULL); //设置定时器回调函数
os_timer_arm(&checkTimer_wifistate, 500, 1); //启动定时器,单位:毫秒
}
- 观察串口打印数据