stm32+lwip的物联网开发——学习过程(1)

本文记录了作者在STM32上使用LwIP进行物联网开发的学习过程,包括无操作系统和有操作系统时的初始化步骤。作者成功实现了静态IP配置,能ping通单片机,并通过修改LwIP_Pkt_Handle函数创建系统任务来控制LED灯,以此验证收发数据包的成功。当断开网线后,虽然灯仍亮但ping不通,暗示了任务开启与网络连接状态之间的关系,作者对此现象感到困惑并期待深入学习。

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

注:本人拒绝重复教程内容,只写下自认为自己有所工作的地方,哪怕只是很小的一点点。
十分欢迎大家与我讨论,指出文中错误与不足之处。

2016.04.16下午13.23
由于一个IOT的项目,顺理成章地学习stm32+lwip。本来先学stm32可能会好一些,但时间原因,只能一起上了。
在看过一次视频教程,自己亲自移植了一次后,所谓“例程”一直没有成功。终于在这一刻,UCOS下终于ping通,也自己写了一个点灯的实验成功了。真正感觉自己做了点什么事,而且对于lwip,至少是最基本的lwip,还有stm32的简单应用有了初步了解。
stm32在无操作系统时,在入口函数中配好时钟参数后,进行各类初始化之后,就开始跑一个lwip_periodic_handle的函数,死循环。是一个广播函数。
在有操作系统时,直接开启os task和os,
其他的功能全在中断回调里面。

void LwIP_Pkt_Handle(void)
{
//从网络缓冲区中读取接收到的数据包并将其发送给LWIP处理
ethernetif_input(&netif);
}

//增加自己的功能是在网络缓冲区里面?

由于宿舍网需要账号密码登录,所以单片机直接接网线无法上网,所以只有单片机跟电脑连接的程序才可以实现。希望等周一路由器到手后可以进行下面的工作。

目前能够对单片机配置静态IP,可以ping通。将上述函数LwIP_Pkt_Handle改写为:
void LwIP_Pkt_Handle(void)
{
//从网络缓冲区中读取接收到的数据包并将其发送给LWIP处理
ethernetif_input(&netif);
OSTaskCreate(led1_task,(void*)0,(OS_STK*)&LED1_TASK_STK[LED1_STK_SIZE-1],LED1_TASK_PRIO);
}
能够有点灯的效果。
这表明,只要灯亮起,则电脑与单片机建立起了lwip通信,并且有收发数据包了。这与ping命令起到的功能一样,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值