色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 一種uIP TCP/IP協(xié)議棧在51系列單片機上的實現(xiàn)

          一種uIP TCP/IP協(xié)議棧在51系列單片機上的實現(xiàn)

          作者: 時間:2011-08-04 來源:網(wǎng)絡 收藏

            添加了必須的模塊,對進行了正確地配置后,需要編寫主程序函數(shù)。針對基于以太網(wǎng)的WEB SERVER應用,主程序在完成初始化后將不停的進行查詢,如果有新數(shù)據(jù)包到達則送uip_input()函數(shù)處理;如果沒有新數(shù)據(jù)包到達則處理定時事件??蚣艽a如下所示:

          通過實際的代碼說明棧的主控制循環(huán)。

            void main(void)

            {

            /*省略部分代碼*/

            /*設置TCP超時處理時間和ARP老化時間*/

            timer_set(periodic_timer, CLOCK_CONF_SECOND / 2);

            timer_set(arp_timer, CLOCK_CONF_SECOND * 10);

            /*定時器初始化*/

            init_Timer();

            /*棧初始化*/

            uip_init();

            uip_arp_init();

            /*應用層初始化*/

            example1_init();

            /*驅(qū)動層初始化*/

            etherdev_init();

            /*IP地址、網(wǎng)關、掩碼設置*/

            uip_ipaddr(ipaddr, 192,168,1,9);

            uip_sethostaddr(ipaddr);

            uip_ipaddr(ipaddr, 192,168,1,16);

            uip_setdraddr(ipaddr);

            uip_ipaddr(ipaddr, 255,255,255,0);

            uip_setnetmask(ipaddr);

            /*主循環(huán)*/

            while(1)

            {

            /*從網(wǎng)卡讀數(shù)據(jù)*/

            uip_len = etherdev_read();

            /*假如存在數(shù)據(jù)則按處理*/

            if(uip_len > 0)

            {

            /*收到的是IP數(shù)據(jù),調(diào)用uip_input()處理*/

            if(BUF->type == htons(UIP_ETHTYPE_IP))

            {

            uip_arp_ipin();

            uip_input();

            /*處理完成后,假如uip_buf中有數(shù)據(jù),則調(diào)用etherdev_send 發(fā)送出往*/

            if(uip_len > 0)

            {

            uip_arp_out();

            etherdev_send();

            }

            }

          tcp/ip相關文章:tcp/ip是什么




          評論


          相關推薦

          技術專區(qū)

          關閉