ZYNQ LWIP实现任意长度数据接收发送

本文介绍了如何将官方LWIP测试回环程序升级为能处理任意长度数据的接收和发送,包括配置、定时器重连、数据拆包与结构解析,适合实际工程应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官方自带的LWIP测试回环程序,实现的功能只是一个单纯的把接收到的数据原封不动的回传回PC机,实际工程运用自然是用不起来的,这里介绍一下如何修改成任意长度数据接收及发送:
首先就是基本的配置代码,这里不采用自带的那种方式,前面的初始化配置基本上一样:
在这里插入图片描述
这里为了方便自动重新连接,设计了一个定时器中断,每250ms检查一次网络连接状态:
这里重连及初始化配置主要用到了两个函数:
tcp_new及tcp_connect,两个函数都是socket自带的函数,具体使用如下图:
在这里插入图片描述
注意圈主的回调函数,接收和发送主要靠
在这里插入图片描述
画横线部分的回调函数,下面讲一下如何做到任意长度数据的接收及发送,

接收:
对于长度长度不长的直接放入内存即可
在这里插入图片描述
然后根据对应的数据格式定义结构体直接解析即可
在这里插入图片描述

在这里插入图片描述
对于发射,主要涉及的两个函数就是
在这里插入图片描述

tcp_write及tcp_output
为了实现任意长度的数据发送,对数据进行拆包处理:
在这里插入图片描述
最后只需给出数据的首地址及要发送的长度,即可实现任意数据的发送

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值