本帖最后由 zhangjianhu 于 2016-8-25 09:51 编辑
STM32F767ZI NUCLEO TCPSEVER工程
STM32F767ZI NUCLEO 功能强大,特别是这次NUCLEO板带了网卡,可以方便的使用网络功能。基于TCP协议本身很复杂,底层的实现部分,使用MDK的中间件代替,这样可以快速开发应用层的功能。
本次使用的是MDK keil v5.20,建立工程后,就是各种选择库。
在Manage Run-Time Environment环境里配置库文件,CMSIS选择CORE是Cortex-M的核心组件,必选,RTOS(API)也必须选上,否则,后面的NETWORK CORE会发黄,提示错误。
CMSIS Driver选择Ethernet MAC(API)-Ethernet MAC STM32F7网卡驱动,Ethernet PHY(API)选择LAN8742A,是STM32F7的网卡。
Device设备层里面选择Startup启动文件,RTE设备配置文件---Classic,HAL库里面必须选择Common,Cortex,ETH,PWR,RCC,相应的驱动文件。
Network网络层,CORE核心文件,我选择的是Release ,对应的MDK-Middleware 版本是6.5.0,我选择最新的7.1.0就会报错,Interface接口,ETH选择为1,Socket里面TCP,UDP全部选上。
到此,中间件选择全部完毕,在工程中会出现对应的文件。下面修改配置文件,RTX_Conf_CM.C在MDK中提供了Configuration Wizard 配置精灵可以方便的修改配置文件。
RTE_Device.h外设配置文件。对应原理图修改网卡对应的引脚
Net_Config_ETH_0.h ETH接口配置文件,修改物理网卡地址,IP地址。
Net_Config.c网络的配置,网络设备的名称。
配置已经完成,下面的是主程序。
ServerTCP头文件
连接路由器,主机,开发板,在路由器界面DHCP里面显示STM32F7的设备名,IP地址及MAC地址。
利用TCP网络调试助手,选择TCP client模式,输入路由器中分配给开发板的IP地址,端口选80,接受区出现预设好的字符。
最后,感谢21IC及ST的活动。这篇文档参考了LIuYang的《详解STM32F7 TCPServer工程》,非常感谢他的分享。
|