标题:
STM32F407+LWIP以太网开发应用例程
[打印本页]
作者:
zhujunlin
时间:
2019-5-17 17:59
标题:
STM32F407+LWIP以太网开发应用例程
单片机源程序如下:
/*******************************************************************************
* 实 验 名 : 以太网应用--LWIP移植(无操作系统)
* 实验说明 :
* 连接方式 :
* 注 意 : 默认使用静态IP模式,使用一根网线将开发板和电脑网络接口连接,
在电脑IP地址设置处手动修改为串口打印输出的远端IP和端口,然后
打开“5--开发工具\4. 常用辅助开发软件\网络调试助手”
和“串口调试助手”,将相应选择设置为实验截图所示。
也可通过电脑"运行+cmd"ping下,检测网络链路是否正常。
本实验开发板网络端为客户端,电脑为服务器。
如果需要使用DHCP服务器模式,可以在netconf.h文件中释放USE_DHCP宏定义,此时
要求电脑和开发板网口都是连接在同一路由器下,电脑端无需其他操作,最后在
网络调试助手和串口上设置下即可。
*******************************************************************************/
#include "system.h"
#include "SysTick.h"
#include "led.h"
#include "usart.h"
#include "time.h"
#include "key.h"
#include "stm32f4x7_phy.h"
#include "lwip/tcp.h"
#include "netconf.h"
#include "tcp_echoclient.h"
extern __IO uint8_t EthLinkStatus;
/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
int main()
{
u8 key;
u8 flag=0;
SysTick_Init(168);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中断优先级分组 分2组
LED_Init();
USART3_Init(9600);
KEY_Init();
TIM4_Init(999,839); //10ms定时器
printf("以太网应用--LWIP移植(无操作系统)\n");
/* Configure ethernet (GPIOs, clocks, MAC, DMA) */
ETH_BSP_Config();
printf("\r\nPHY初始化结束\n");
/* Initilaize the LwIP stack */
LwIP_Init();
printf("\r\nLwIP初始化结束\n");
printf("\r\nK_UP : 启动TCP连接\n");
printf("\r\nK_DOWN: 断开TCP连接\n");
/* IP地址和端口可在netconf.h文件修改,或者使用DHCP服务自动获取IP
(需要路由器支持)*/
printf("\r\n本地IP和端口: %d.%d.%d.%d\n",IP_ADDR0,IP_ADDR1,IP_ADDR2,IP_ADDR3);
printf("\r\n远端IP和端口: %d.%d.%d.%d:%d\n",DEST_IP_ADDR0, DEST_IP_ADDR1,DEST_IP_ADDR2, DEST_IP_ADDR3,DEST_PORT);
while(1)
{
key=KEY_Scan(0);
if(key==KEY_UP && (flag==0))
{
led1=0;
if (EthLinkStatus == 0)
{
printf("connect to tcp server\n");
/*connect to tcp server */
tcp_echoclient_connect();
flag=1;
}
}
if(key==KEY_DOWN&& flag)
{
led1=1;
tcp_echoclient_disconnect();
flag=0;
}
/* check if any packet received */
if (ETH_CheckFrameReceived())
{
/* process received ethernet packet */
LwIP_Pkt_Handle();
}
/* handle periodic timers for LwIP */
LwIP_Periodic_Handle(LocalTime);
}
}
复制代码
所有资料51hei提供下载:
以太网应用--LWIP移植(无操作系统).7z
(945.67 KB, 下载次数: 171)
2019-5-18 03:08 上传
点击文件名下载附件
LWIP以太网开发历程
下载积分: 黑币 -5
作者:
scm0908
时间:
2019-6-14 16:48
下载看看,黑币不够吗?
作者:
stone3rd12
时间:
2019-12-17 14:09
刚注册如何下载内容呢
作者:
小黑14
时间:
2019-12-17 22:44
怎么默认使用静态IP模式,使用一根网线将开发板和电脑网络接口连接
作者:
leofly813
时间:
2020-10-3 17:17
正好在研究这个,谢谢楼主分享!
作者:
BMWM3V6
时间:
2022-4-18 09:49
正在研究这个,下来学习学习,谢谢分享
作者:
XXX飞飞飞
时间:
2022-7-15 10:12
大哥这个使用的端口是lan8720还是DP83848
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1