关于Lwip协议栈应用的简单说明(cpu型号:Stm32F407ig、上位机)

13 篇文章 0 订阅
13 篇文章 1 订阅

        由于本人属于菜鸟中的菜鸟,所以,学习 lwip协议栈及STM32花费不少时间。经过一段时间的学习对于 Stm32F407了解只局限于以太网控制器、中断 、串口、定时器、网口、GPIO、SYSTICK等初步了解。后来 一边学 vb.net 、 一边学 lwip、  一边学硬件 (STM32),去图书馆发现 vb.net语言关于网络通信的太少,但是,发现 c#.net  语言关于网络通信的书籍比较多,于是借了几本C#的书籍。最后磕磕碰碰完成该项目,主要涉及上位机socket(TCP)通信源码编写,下位机STM32网络通信模块软硬件设计。 

        下面讲讲要点了lwip 在stm32F407上的应用, 在 echo server 例程基础上做了一定的修改,网络通信接受数据改成中断方式(提高其运行效率),发送目前在循环里面(根据实际项目需求可做一定改动),tcp_write() 、tcp_output(),每1024字节调用一次 。 配置的参数: mss = 1500、   send_buf  =  6*mss、   twnd = 4096。上位机采用异步接收方式,刚刚试了下10s接收到的数据量为11159KB,约等于1MB/S。

        写这篇文章已有时日,今天再次翻开以前写的博客,想想当时啥都不懂,好在最后通过努力网络通信上下位机搞定,也算交差了。

        主要注意点

(1)硬件上用的DP83848和STM32F439 ,现在用的是这个版本,其中DP83848 电路设计这块要注意滤波电容、rj45 要与其尽量靠近;

(2)下位机软件lwip 采用的是裸奔,没有现成的接口函数要自己慢慢的调试,里面有个opt.h头文件需要自己配置,例如: mem-size ,还有发送、接收采取中断的方式,,周期执行函数放在定时器任务中运行,提高了一定的效率,不要放在while函数中。另外如: tcp、 udp、 ip、 arp、 mac、 phy、 application 等,各位有时间可以进行深入研究;

(3) 上位机资源最多的就是c#的socket通信,本人的下载资源里面就可看到相关例程。本人采取异步通信方式,接收处理函数和下位机的函数最好联合调试,在调试过程中可用wireshark软件抓数据包,通信分析数据包进而帮助其更好的解决相关问题,该软件亦在本人的下载资源里可搜到。

最后祝大家身体健康、事业顺心、奖金多多!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值