我正在使用Cortex M3,Stellaris®LM3S6965評估板。我想在我的oled屏幕上顯示NTP服務器的時間。首先,我想從NTP服務器獲得答覆。我搜索到服務器與UDP協同工作。它給了我一個時間戳。我正在使用LWIP庫。發送UDP包到NTP服務器並接收時間(lwip,Cortex M3,Stellaris LM3S6965評估板)
我試圖發送服務器的UDP數據包,我想顯示顯示(時間戳)對收到的分組數據..
所以我覺得我必須送一個UDP包到TNP服務器並接收時間戳。
但不知何故,它不工作。我希望你們能幫我找到解決辦法。
編輯:
我也發現有關NTP here
一些更多的信息更新程序:
// 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);
}
然後我需要發送什麼數據到NTP服務器? – Sharpless512
@Sharpless512請參閱NTP規範,它會告訴您NTP數據包的格式。 – unwind
有很多信息,但沒有真正解釋我需要發送的內容。 – Sharpless512