我正在使用 Cortex M3、Stellaris® LM3S6965 评估板。我想在我的 oled 屏幕上显示 NTP 服务器的时间。首先,我想得到 NTP 服务器的回复。我搜索了服务器与 UDP 一起使用。它给了我一个时间戳。我正在使用 LWIP 库。
我正在尝试向服务器发送一个 UDP 数据包,我想在显示器上显示收到的数据包数据(时间戳)..
所以我想我必须向 TNP 服务器发送一个 udp 包并接收时间戳。
但不知何故它不起作用。我希望你们能帮我找到解决办法。
编辑:
我还在这里找到了有关 NTP 的更多信息
更新程序:
// Function gets called when we recieve data
err_t RecvUTPCallBack(void *arg, struct udp_pcb *upcb, struct pbuf *p, struct ip_addr *addr, u16_t port){
    RIT128x96x4Enable(1000000);
    RIT128x96x4StringDraw("ENTERING CALLBACK", 40, 40, 11);
    volatile int totaal_lengte=0;
    totaal_lengte = p->tot_len;
    volatile int line=40;
    while(1){
        RIT128x96x4Enable(1000000);
        RIT128x96x4StringDraw(p->payload+1, 0, line, 15);
        line+=8;
        if(p->len != p->tot_len){
            p=p->next;
        }
        else break;
    }
    pbuf_free(p);
}
int main(void){
                //UDP
                struct udp_pcb * udp_con_new;
                struct ip_addr ntp_server;
                udp_con_new = udp_new();
                IP4_ADDR(&ntp_server,65,55,21,13); // time.windows.com
                udp_connect(udp_con_new,&ntp_server,123);
                struct pbuf * p;
                p = 0;
                udp_send(udp_con_new, p);
                //udp_recv(upcb,RecvUTPCallBack, recv_arg);
}