查看: 1068|回复: 0

转战STM32F7系列一

[复制链接]

该用户从未签到

发表于 2017-3-27 08:53:50 | 显示全部楼层 |阅读模式
分享到:
拿到板子接近一个星期了前一整子忙没有太注意看这块板子,昨天看了一天,因为之前有学习过stm32 cortex-m3和m4的内核所以转战过来挺快的,废话不多说,开始干货,这期主要讲讲LWIP嵌入式TCP/IP协议栈控制单片机是如何实现的,将会以一个小例程来给大家讲解。
/**********************一条华丽的分割线************************/
关于嵌入式LWIP协议栈知识不了解的童鞋们可以在这个网站上学习一下
https://www.embed-net.com/thread-41-1-1.html
大概了解一下LWIP协议栈的知识和工作原理,如果想要深入研究请参看老衲五木的《嵌入式网络那些事STM32物联实战》以及《TCP/IP详解》, 这两本书会让你对嵌入式网络编程有一个充分了解
https://savannah.nongnu.org/projects/lwip
LWIP的官方网站,因为这个协议栈是开源的,所以大家可以下载更高的版本来替换cube中1.4.3的版本,实现更多的功能;
/**********************一条华丽的分割线************************/
之前开发LWIP协议栈是在infineon的xmc4500 relax kit上进行编程,对其有个比较深的了解,移植工作也非常快,我这里使用的是cube中这块板子例程中的LWIP网页服务工程,这里直接拿来使用这个例程中包含了DHCP服务、一个嵌入式网页服务、因为使用了netconn的编程方式这里必须要加入一个操作系统,工程使用的是cmsis-rtos基于free-rtos,先来看看官方历程的效果,

启动之后先进行板卡初始化,再搜寻DHCP服务,这里链接到路由器会给开发板分配一个IP地址,如图所示,这个速度非常快,当链接到PC机上时,这时不具有DHCP服务功能,板卡会等待很长时间,当确实没有服务时,板卡会初始化为静态IP地址192.168.0.10,如下图所示:

当板卡分配好IP地址后先在电脑上ping一下板卡,能ping通说明通信么有问题,这里使用单网线进行连接延时很低,

此时可以打开浏览器在地址栏输入板卡的IP地址,可以看到如下网页,

毕竟不是高级处理器,网页动态效果不是很好,但对于想要做数据采集的童鞋是个不错的选择。list of task是板卡上正在运行的进程的相关参数,类似win的任务管理器。官方例程就讲解到这里。下面将讲解我移植的程序。
/**********************一条华丽的分割线************************/

打开工程找到StartThread函数,这里边是板卡的初始化以及嵌入式lwip协议栈的初始化,通过这个初始化我们就可以使用lwip了,由于我们要使用控制LED灯,所以在这里添加一个LED的的进程,做按键和LED的控制;

这个是发送的数组

在http_server-netconn.c中修改相关的代码,

添加一个函数用于控制网页显示,其中led_status是LED灯当前的状态,只需将对应状态的网页发送出去即可,

现在就可以打开网页查看效果了,刚开始打开网页是这样,板卡上LED灯是熄灭的,

按下网页上的打开按钮就可以看到板卡上LED灯亮起如下图:

同时网页改变为

这就实现了简单的网页控制,同时让你对协议栈的工作流程有个清晰的了解。下期再见!需要工程代码的童鞋可以给我留言。
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

手机版|小黑屋|与非网

GMT+8, 2024-4-24 04:13 , Processed in 0.115720 second(s), 17 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.