STM32F103是意法半导体(STMicroelectronics)推出的一款基于ARM Cortex-M3内核的微控制器,属于STM32系列的经济型产品。它拥有丰富的外设接口和高速处理能力,广泛应用于嵌入式系统设计。在本项目中,开发者使用STM32F103作为核心处理器,结合FreeRTOS实时操作系统和lwIP轻量级网络协议栈,实现了网络通信功能。 FreeRTOS是一款开源、小巧、高效且可移植的实时操作系统,特别适合资源有限的微控制器。它提供任务调度、信号量、互斥锁等机制,使得开发者能够轻松地在STM32F103上实现多任务并行处理。移植FreeRTOS至STM32F103的过程中,主要涉及设置堆栈大小、配置时钟、初始化任务以及调度器启动等工作。开发人员需要对FreeRTOS的API有深入理解,并熟悉STM32的中断服务程序和内存管理。 lwIP是一个轻量级的TCP/IP协议栈,专为嵌入式系统设计,它实现了基本的TCP、UDP、ICMP和IPv4协议,可以满足大多数网络通信需求。在STM32F103上移植lwIP,首先需要配置网络接口,通常通过ENC28J60这样的以太网控制器来实现。ENC28J60是一个SPI接口的以太网控制器,开发者需要编写驱动程序来与STM32F103进行通信。接着,需要配置lwIP的网络接口层(netif),并设置IP地址、子网掩码和网关。此外,还需要将 lwIP 集成到 FreeRTOS 中,使两者协同工作,处理网络数据收发。 在完成上述移植工作后,开发人员利用socket API进行网络编程。Socket是网络通信中的基本概念,它是进程间通信的一种方式,可以实现不同主机间的通信。在lwIP中,开发者可以创建TCP或UDP套接字,进行连接、监听、发送和接收数据。例如,可以创建一个TCP服务器,等待客户端连接,或者创建一个UDP客户端向远程服务器发送数据。 在MDK5(Keil uVision)编译环境中,开发人员编写和调试STM32F103的C代码。MDK5提供了强大的IDE,包括源代码编辑器、工程管理、编译器、链接器和调试器等功能,支持STM32的HAL库和LL库,便于开发者快速构建和优化应用程序。 这个项目展示了如何在STM32F103上集成FreeRTOS和lwIP,实现嵌入式系统的网络功能。通过这样的实践,开发者不仅能够掌握实时操作系统和网络协议栈的使用,还能深入了解微控制器的底层硬件操作,以及如何在资源受限的环境下优化软件性能。这对于提升嵌入式系统的开发能力和解决实际问题具有重要意义。
2019-12-21 19:46:16 62.91MB stm32f103 freertos lwip enc28j60
1
MICORCHIP出的适合单片机使用的28脚SPI接口以太网芯片ENC28J60,工业产品,还不贵。偶然得到一份宝贵资料,特拿到这里来大家一起研究。微小化的智能产品中肯定用的着,不象RTL8019那么多引脚。还支持网线自动极性检测和校正,唯一的缺点就是最大通讯速率为10Mb/S,单片机上用是足够了。大家有用它做过程序也不妨拿来共勉。 供学习用哦~~~
2019-12-21 19:40:00 1.28MB ENC28J60 中英文资料 SPI 驱动
1
这个是我本科的毕业设计,自己放着也没用,所以贡献给大家,同时也是本人积分太少,想赚点积分。这个用的是STM32+ENC28J60+LWIP协议栈实现的智能家居,通过网页来控制板子上的LED灯,同时实时刷新STM32时间和温度。网页是用记事本用HTML编写的,直接用记事本打开就能看网页代码,网页代码和图片都通过转码后存在单片机内部。用AJAX通讯方式来和浏览器通讯,用少量数据来刷新时间,而不是刷新整个网页。
2019-12-21 19:39:54 10.88MB 智能家居 STM32 ENC28J60 LWIP
1
开机检测ENC28J60,如果检测不成功,则提示报错。在成功检测到ENC28J60之后,初始化uIP,并设置IP地址(192.168.1.16)等,然后监听80端口和1200端口,并尝试连接远程1400端口,80端口用于实现WEB Server功能,1200端口用于实现TCP Server功能,连接1400端口实现TCP Client功能。此时,我们在电脑浏览器输入http://192.168.1.16 ,就可以登录到一个界面,该界面可以控制开发板上两个LED灯的亮灭,还会显示开发板的当前时间以及开发板STM32芯片的温度(每10秒自动刷新一次)。另外,我们通过网络调试软件(做TCP Server时,设置IP地址为:192.168.1.103,端口为1400;做TCP Client时,设置IP地址为:192.168.1.16,端口为1200)同开发板连接,即可实现开发板与网络调试软件之间的数据互发。按KEY0,由开发板的TCP Server端发送数据到电脑的TCP Client端。按KEY1,则由开发板的TCP Client端发送数据到电脑的TCP Server端。LCD显示当前连接状态。
2019-12-21 18:55:14 8.92MB STM32 ENC28J60
1
STM32F103C8T6移植ENC28J60+UIP1.0,网上很多不是没有效果就是各种报错,于是本人自行开发了一个工程,经过验证100%可用,需要的朋友按照工程中接线方式连接好硬件,下载运行即可,非常方便,希望能够帮助更多的朋友
2019-12-21 18:52:24 148KB STM32F103 ENC28J60 UIP1.0
1