0

我正在使用 PIC-IoT WG wifi 开发板开展一个项目。我正在尝试修改演示代码以便能够在我自己的服务器上使用它。该演示在几个地方使用了这样的代码:

#include <time.h>
static void connectMQTT()
{
   uint32_t currentTime = time(NULL);

   if (currentTime > 0)
   {
      updateJWT(currentTime + UNIX_OFFSET);   
      MQTT_CLIENT_connect();
   }      
   debug_print("CLOUD: MQTT Connect");

   sendSubscribe = true;
}

每次我打开它时,它都会在 15-20 分钟内尝试连接到服务器,但是这些代码部分没有运行,time(NULL)似乎返回 0。

据我了解,如果是 PIC 微控制器 time(NULL) 应该返回指令周期数。

为什么返回0?为什么它停止返回0?

4

1 回答 1

0

通常,time.h 中的 time(NULL) 返回一个 time_t,表示自纪元 (1970 Jan 1 00:00:00) 以来的秒数。将 time() 的输出放入 uint32 可能会导致“服务器”出现问题。将其更改为 time_t 并查看它是否解决了问题。

于 2019-10-02T21:15:06.667 回答