STM32 网页服务器 LWIP websever ajax实时刷新 (三)

STM32 网页服务器 LWIP websever ajax实时刷新 (三)

干货来了。

解决正点原子中不接网线就LWIP就没初始化的问题

首先我们分析一下原子的程序

int main(void)
{
	delay_init(168);       	//延时初始化
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);	//中断分组配置
	uart_init(115200);   	//串口波特率设置
	usmart_dev.init(84);	//初始化USMART	
	FSMC_SRAM_Init(); 		//SRAM初始化
	
	mymem_init(SRAMIN);  	//初始化内部内存池
	mymem_init(SRAMEX);  	//初始化外部内存池
	mymem_init(SRAMCCM); 	//初始化CCM内存池

	OSInit(); 					//UCOS初始化
	while(lwip_comm_init()) 	//lwip初始化
	{
		//LCD_ShowString(30,130,200,20,16,"Lwip Init failed!"); 	//lwip初始化失败
		delay_ms(500);
		LCD_Fill(30,130,230,150,WHITE);
		delay_ms(500);
	}
	//LCD_ShowString(30,130,200,20,16,"Lwip Init Success!"); 		//lwip初始化成功
	while(udp_demo_init()) 										//初始化udp_demo(创建udp_demo线程)
	{
		//LCD_ShowString(30,150,200,20,16,"UDP failed!!"); 		//udp创建失败
		delay_ms(500);
		LCD_Fill(30,150,230,170,WHITE);
		delay_ms(500);
	}
	LCD_ShowString(30,150,200,20,16,"UDP Success!"); 			//udp创建成功
	OSTaskCreate(start_task,(void*)0,(OS_STK*)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO);
	OSStart(); //开启UCOS
}

在main函数中初始化了lwip_comm_init();函数。如果没有初始化成功则没有再次初始化。
增对这个问题,如何解决?

LAN8720

LAN8720 是低功耗的 10/100M 以太网 PHY 层芯片, I/O 引脚电压符合 IEEE802.3-2005 标
准。 LAN8720 支持通过 RMII 接口与以太网 MAC 层通信,内置 10-BASE-T/100BASE-TX 全双
工传输模块,支持 10Mbps 和 100Mbps。 LAN8720 可以通过自协商的方式与目的主机最佳的连
接方式(速度和双工模式)。 支持 HP Auto-MDIX 自动翻转功能, 无需更换网线即可将连接更改
为直连或交叉连接。 LAN8720 的主要特点如下:
⚫ 高性能的 10/100M 以太网传输模块
⚫ 支持 RMII 接口以减少引脚数
⚫ 支持全双工和半双工模式
⚫ 两个状态 LED 输出
⚫ 可以使用 25M 晶振以降低成本
⚫ 支持自协商模式
⚫ 支持 HP Auto-MDIX 自动翻转功能
⚫ 支持 SMI 串行管理接口
⚫ 支持 MAC 接口

1. LAN8720中断
lan8720有主中断模式和复用中断模式。
主中断模式和复用中断模式。 主中断模式是默认中断模式,
LAN8720 上电或复位后就工作在主中断模式,当模式控制/状态寄存器(十进制地址为 17)的
ALTINT 为 0 是 LAN8720 工作在主模式,当 ALTINT 为 1 时工作在复用中断模式。
2. PHY 地址设置
MAC 层通过 SMI 总线对 PHY 进行读写操作, SMI 可以控制 32 个 PHY 芯片,通过不同的PHY 芯片地址来对不同的 PHY 操作。 LAN8720 通过设置 RXER/PHYAD0 引脚来设置其 PHY地址, 默认情况下为 0, 其地址设置如 我的 STM32F407 开发板使用的是默认地址。
3. 时钟来源
LAN8720 的时钟来源可以有两种设计方式。一种是由单片机提供50M时钟,另外一种是外接25M晶振。使用不同的模式芯片的2脚(nINTESEL)接法不同。nINTSEL 引脚(2 号引脚)用于设置 nINT/REFCLKO 引脚(14 号引脚)的功能。

nINTSEL 引脚值模式nINT/REFCLKO引脚功能
nINTSEL =0REF_CLK Out 模式nINT/REFCLKO 作为时钟源
nINTSEL =1REF_CLK In模式nINT/REFCLKO 作为中断引脚

本设计采用的是外接提供25M晶振产生REF_CLK时钟。
4. 精简介质独立接口: RMII
精简介质独立接口(RMII) 规范降低 10/100 Mbit/s 下微控制器以太网外设与外部 PHY 间
的引脚数。根据 IEEE 802.3u 标准, MII 包括 16 个数据和控制信号的引脚。 RMII 规范将引脚
数减少为 7 个。
STM32F407 通过 RMII 接口与 PHY 层芯片的连接。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值