找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5866|回复: 6
收起左侧

STM32F407+LWIP以太网开发应用例程

  [复制链接]
ID:327871 发表于 2019-5-17 17:59 | 显示全部楼层 |阅读模式
单片机源程序如下:
  1. /*******************************************************************************

  2. * 实 验 名                 : 以太网应用--LWIP移植(无操作系统)
  3. * 实验说明       :
  4. * 连接方式       :
  5. * 注    意                 : 默认使用静态IP模式,使用一根网线将开发板和电脑网络接口连接,
  6.                                         在电脑IP地址设置处手动修改为串口打印输出的远端IP和端口,然后
  7.                                         打开“5--开发工具\4. 常用辅助开发软件\网络调试助手”
  8.                                         和“串口调试助手”,将相应选择设置为实验截图所示。
  9.                                         也可通过电脑"运行+cmd"ping下,检测网络链路是否正常。
  10.                                         本实验开发板网络端为客户端,电脑为服务器。
  11.                                         如果需要使用DHCP服务器模式,可以在netconf.h文件中释放USE_DHCP宏定义,此时
  12.                                         要求电脑和开发板网口都是连接在同一路由器下,电脑端无需其他操作,最后在
  13.                                         网络调试助手和串口上设置下即可。
  14. *******************************************************************************/


  15. #include "system.h"
  16. #include "SysTick.h"
  17. #include "led.h"
  18. #include "usart.h"
  19. #include "time.h"
  20. #include "key.h"
  21. #include "stm32f4x7_phy.h"
  22. #include "lwip/tcp.h"
  23. #include "netconf.h"
  24. #include "tcp_echoclient.h"


  25. extern __IO uint8_t EthLinkStatus;

  26. /*******************************************************************************
  27. * 函 数 名         : main
  28. * 函数功能                   : 主函数
  29. * 输    入         : 无
  30. * 输    出         : 无
  31. *******************************************************************************/
  32. int main()
  33. {
  34.         u8 key;
  35.         u8 flag=0;
  36.        
  37.         SysTick_Init(168);
  38.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //中断优先级分组 分2组
  39.         LED_Init();
  40.         USART3_Init(9600);
  41.         KEY_Init();
  42.         TIM4_Init(999,839);  //10ms定时器
  43.        
  44.         printf("以太网应用--LWIP移植(无操作系统)\n");
  45.        
  46.         /* Configure ethernet (GPIOs, clocks, MAC, DMA) */
  47.         ETH_BSP_Config();       
  48.         printf("\r\nPHY初始化结束\n");
  49.        
  50.         /* Initilaize the LwIP stack */
  51.         LwIP_Init();       
  52.         printf("\r\nLwIP初始化结束\n");
  53.        
  54.         printf("\r\nK_UP  : 启动TCP连接\n");
  55.         printf("\r\nK_DOWN: 断开TCP连接\n");
  56.   
  57.         /* IP地址和端口可在netconf.h文件修改,或者使用DHCP服务自动获取IP
  58.         (需要路由器支持)*/
  59.         printf("\r\n本地IP和端口: %d.%d.%d.%d\n",IP_ADDR0,IP_ADDR1,IP_ADDR2,IP_ADDR3);
  60.         printf("\r\n远端IP和端口: %d.%d.%d.%d:%d\n",DEST_IP_ADDR0, DEST_IP_ADDR1,DEST_IP_ADDR2, DEST_IP_ADDR3,DEST_PORT);
  61.   
  62.         while(1)
  63.         {
  64.                 key=KEY_Scan(0);
  65.                 if(key==KEY_UP && (flag==0))
  66.                 {
  67.                         led1=0;
  68.                         if (EthLinkStatus == 0)
  69.                         {
  70.                                 printf("connect to tcp server\n");
  71.                                 /*connect to tcp server */
  72.                                 tcp_echoclient_connect();
  73.                                 flag=1;
  74.                         }
  75.                 }
  76.                 if(key==KEY_DOWN&& flag)
  77.                 {
  78.                         led1=1;
  79.                         tcp_echoclient_disconnect();
  80.                         flag=0;
  81.                 }
  82.                
  83.                 /* check if any packet received */
  84.                 if (ETH_CheckFrameReceived())
  85.                 {
  86.                         /* process received ethernet packet */
  87.                         LwIP_Pkt_Handle();
  88.                 }
  89.                 /* handle periodic timers for LwIP */
  90.                 LwIP_Periodic_Handle(LocalTime);
  91.         }
  92. }
复制代码

所有资料51hei提供下载:
以太网应用--LWIP移植(无操作系统).7z (945.67 KB, 下载次数: 171)
回复

使用道具 举报

ID:562513 发表于 2019-6-14 16:48 | 显示全部楼层
下载看看,黑币不够吗?
回复

使用道具 举报

ID:666238 发表于 2019-12-17 14:09 | 显示全部楼层
刚注册如何下载内容呢
回复

使用道具 举报

ID:666819 发表于 2019-12-17 22:44 来自手机 | 显示全部楼层
怎么默认使用静态IP模式,使用一根网线将开发板和电脑网络接口连接
回复

使用道具 举报

ID:680739 发表于 2020-10-3 17:17 | 显示全部楼层
正好在研究这个,谢谢楼主分享!
回复

使用道具 举报

ID:337868 发表于 2022-4-18 09:49 | 显示全部楼层
正在研究这个,下来学习学习,谢谢分享
回复

使用道具 举报

ID:997110 发表于 2022-7-15 10:12 | 显示全部楼层
大哥这个使用的端口是lan8720还是DP83848
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表