lwip可以用于发udp_LWIP裸机环境下实现TCP与UDP通讯

该博客介绍了如何在不依赖操作系统的情况下,使用LWIP库进行TCP和UDP通信。首先,定义了IP地址、网络接口等关键变量,然后初始化LWIP协议栈和网络接口,并设置了TCP和UDP客户端及服务器的初始化函数。在主循环中,通过LWIP_Polling()函数处理网络通信和定时任务,实现了数据的发送和接收。
摘要由CSDN通过智能技术生成

#include "mainInclude.h"#include"lwip/init.h"#include"lwip/ip.h"#include"lwip/dhcp.h"#include"lwip/tcp_impl.h"#include"lwip/ip_frag.h"#include"lwip/dns.h"#include"netif/etharp.h"#include"netif/ethernetif.h"#include"arch/sys_arch.h"

#define CLOCKTICKS_PER_MS 10 //定义时钟节拍

static ip_addr_t ipaddr, netmask, gw; //定义IP地址

struct netif enc28j60_netif; //定义网络接口

u32_t input_time;

u32_t last_arp_time;

u32_t last_tcp_time;

u32_t last_ipreass_time;

u32_t last_dhcp_fine_time;

u32_t last_dhcp_coarse_time;

u32 dhcp_ip=0;//LWIP查询

void LWIP_Polling(void)

{if(timer_expired(&input_time,5)) //接收包,周期处理函数

{

ethernetif_input(&enc28j60_netif);

}if(timer_expired(&last_tcp_time,TCP_TMR_INTERVAL/CLOCKTICKS_PER_MS))//TCP处理定时器处理函数

{

tcp_tmr();

}if(timer_expired(&last_arp_time,ARP_TMR_INTERVAL/CLOCKTICKS_PER_MS))//ARP处理定时器

{

etharp_tmr();

}if(timer_expired(&last_ipreass_time,IP_TMR_INTERVAL/CLOCKTICKS_PER_MS))//IP重新组装定时器

{

ip_reass_tmr();

}

}int main(void)

{

u

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值