1、首先在ETH里面使能RMII,然后参数设置这里的PHY Address要根据你RXER引脚是否上拉决定是0还是1,如果有上拉就要设置为1,没有上拉就设置为0。我这里上拉了,所以地址就必须设置为1。这个设置在stm32f4xx_hal_conf.h中

/* lan8720_PHY_ADDRESS Address*/

#define lan8720_PHY_ADDRESS           1U

2、关于50M晶振,看一下LAN8720A的手册上是这样说的,要注意这个STRAP这个单词的意思是背带的意思,可以理解成被设置的值,也就是说模式的设置不是由这个引脚决定的,手册上也明确的说到了模式配置是由nINT/REFCLKO决定的,就是说我们的这个50M晶振同时给网卡和PHY提供时钟源。还有低成本模式就是XTAL1和XTAL2之间接25M晶振,网卡的时钟由REFCLKO提供,但是此时复用中断使能功能引脚nINT就没有用了。

3、PHY的寄存器我们主要关注的有3个,BCR、BSR、PHY_SR地址偏移如下表所示:

也是在stm32f4xx_hal_conf.h中配置。

#define PHY_BCR                         ((uint16_t)0x00U)    /*!< Transceiver Basic Control Register   */

#define PHY_BSR                         ((uint16_t)0x01U)    /*!< Transceiver Basic Status Register    */

/* Section 4: Extended PHY Registers */

#define PHY_SR                          ((uint16_t)31U)    /*!< PHY status register Offset                      */

4、下面就是PHY的初始化了,首先找到ethernetif_init,如下图中所示,网卡初始化就在这个函数里面,然后再看这个函数里面的low_level_init(netif);这个就是PHY的初始化函数了,netif是网口的接口管理结构体,还有一个pbuf是网口数据包结构体,这两个结构体很重要。

下面继续看low_level_init(struct netif *netif)函数

用STM32CubeMX生成STM32F407ZG + LAN8720A 的LWIP相关推荐

  1. STM32CubeMX快速生成STM32F407ZG芯片寄存器初始化

    STM32CubeMX快速生成STM32F407ZG芯片寄存器初始化 STM32CubeMX对于一些使用STM32比较多的开发者比较熟悉,但对于刚接触STM32系列单片机的开发者就可能显得陌生一些.S ...

  2. 在STM32CubeMX生成的MDK5工程上添加RT-Thread Nano后双击工程名无法打开.map文件的解决方法

    当我们基于STM32CubeMx完成芯片的基础配置,再将RT-Thread Nano添加到工程编译完成之后.双击工程名称发现无法打开工程的.map文件,.map文件是STM32开发中非常重要的一个文件 ...

  3. 修改STM32CuBeMX生成文件

    修改STM32CuBeMX生成文件 STM32CuBeMX可以图形化的生成代码,但是它生成的代码都是全英文的注释,使用时不是非常的便利,并且初始代码在软件中无法修改.因此我们需要在文件底层对其进行修改 ...

  4. 彻底搞清楚STM32CubeMX生成工程再次下载后SWD无法使用问题

    背景 STM32CubeMX生成工程,调试USB-HID,第一次调试,没有问题,更改代码下载,提示找不到芯片. 问题 发现工程里,SWD被禁用了.由于板子复位键不好用,所以,使用镊子,一直按着复位(按 ...

  5. STM32CubeMX生成工程失败

    STM32CubeMX生成工程失败.错误提示:The Code is successfuly generated -but MDK-ARM project generation have a prob ...

  6. 通过STM32CUBEMX生成RTOS系统运用(一)

    通过STM32CUBEMX生成RTOS系统运用(一) 前言: 在一次项目开发中,使用的是循环式运行,但在某些需要快速响应处理数据时,没有办法及时的去到处理函数,于是开始了这次基于STM32CUBE自动 ...

  7. STM32WB55_NUCLEO开发(2)----使用STM32CubeMX 生成的简单 BLE 应用程序连接手机APP

    STM32WB55_NUCLEO开发.2----使用STM32CubeMX 生成的简单 BLE 应用程序连接手机APP 概述 硬件准备 视频教学 源码下载 选择芯片型号 配置时钟源 配置时钟树 查看开 ...

  8. (GCC)STM32CubeMX生成的ld链接脚本详解

    本文所使用工程由STM32CubeMX生成,使用芯片:STM32F103ZET6,基本只开了时钟. ld连接脚本内容如下: /* *********************************** ...

  9. 使用STM32CubeMX生成USB驱动程序 USB无法检测到的问题 生成USB驱动

    以STM32CubeMX生成USB驱动为例,其步骤如下: 一.使用STM32CubeMX生成USB驱动程序 打开STM32CubeMX软件,选择Start My project formMCU,点AC ...

最新文章

  1. 电脑不能上网之硬件故障
  2. 函数计算支持 MySQL 实例绑定
  3. window bat
  4. Java MyBaties 映射配置文件 mapper
  5. Lua基本函数库 【转】
  6. C# : 操作Word文件的API - (将C# source中的xml注释转换成word文档)
  7. flex布局 详细开发教程
  8. 申请 GoDaddy SSL 证书
  9. 1月英语总结—发现新大陆
  10. Ue4导入视频黑屏原因
  11. 计算机网络波动大,网络不稳定怎么办,小编教你电脑网络不稳定怎么办
  12. 七参数坐标转换的几种解法
  13. Excel函数 - 提取月份,转换月份格式
  14. windows 10 远程桌面 第一次登录之前 你必须更改密码 请更新密码
  15. 能上Q不能上网解决方案
  16. 别说告诉我你懂PPT--学习笔记
  17. SmallPdf如何免费做到无限次转换
  18. 掌纹识别技术的未来发展是怎样的?
  19. eth批量归集代币合约部署
  20. 向量相似度java_计算一组向量相似度

热门文章

  1. 在html中调用QQ,MSN,旺旺,Skype,Email的方法
  2. 微信辅助注册平台源码
  3. HTTP协议与HTTPS协议详解(含常见面试题)
  4. kafka-分区重分配及相关源码分析
  5. php一点通,编程一点通下载-编程一点通最新安卓版下载-99wo下载站
  6. 促销 java 满 赠_促销活动除了打折、返现、满赠,还有什么方式?
  7. 为什么说电销企业需要智能电销系统原因?
  8. kdj值应用口诀_KDJ应用口诀,一文教你巧妙利用KDJ买卖股票
  9. SDUT OJ 2132 (一般算术表达式转换成后缀式)
  10. 海王小姐姐教你微信如何三步实现多开,win7 win 8 win10都可用