请问时间校准函数是哪个?
我设备里面没有网络,无法通过NTP校时,只能通过蓝牙和串口将时间传输到ESP32。
没找到时间设置的相关函数。
谢谢
请问时间校准函数是哪个?我设备里面没有网络,无法NTP校时
Re: 请问时间校准函数是哪个?我设备里面没有网络,无法NTP校时
给你点参考,这是我写的通过us来设置时间,和获取us为单位的时间。
/*
* 手动设置SNTP时间
*/
void sntp_time_set_us(int64_t time_us)
{
struct timeval time= {0};
time.tv_sec = time_us / 1000000L; //取秒
time.tv_usec = time_us - time.tv_sec * 1000000L; //微秒
ESP_LOGI(TAG, "set sntp time us : %lld", time_us);
sntp_sync_time(&time);
}
/*
* 获取SNTP时间,秒
*/
int64_t sntp_time_get_us(void)
{
struct timeval tv_now;
gettimeofday(&tv_now, NULL);
int64_t sntp_time = (int64_t)tv_now.tv_sec * 1000000L + (int64_t)tv_now.tv_usec;
ESP_LOGI(TAG, "get sntp time us : %lld", sntp_time);
return sntp_time;
}
/*
* 手动设置SNTP时间
*/
void sntp_time_set_us(int64_t time_us)
{
struct timeval time= {0};
time.tv_sec = time_us / 1000000L; //取秒
time.tv_usec = time_us - time.tv_sec * 1000000L; //微秒
ESP_LOGI(TAG, "set sntp time us : %lld", time_us);
sntp_sync_time(&time);
}
/*
* 获取SNTP时间,秒
*/
int64_t sntp_time_get_us(void)
{
struct timeval tv_now;
gettimeofday(&tv_now, NULL);
int64_t sntp_time = (int64_t)tv_now.tv_sec * 1000000L + (int64_t)tv_now.tv_usec;
ESP_LOGI(TAG, "get sntp time us : %lld", sntp_time);
return sntp_time;
}
Who is online
Users browsing this forum: No registered users and 62 guests