请教:STM32F107采用RMII以太网的问题

vbird   2010-6-7 21:34 楼主


问题描述:程序出自ST官方的LwIP例程,只是简单的ping,不采用DHCP,IP定义在netconf.c,为192, 168, 2, 30。
      采用STM32F107VCT6芯片,去除开发板管脚相关的定义,RMII模式,使用的管脚
PB11    ETH_MII_TX_EN
PB12    ETH_MII_TXD0
PB13    ETH_MII_TXD1
PD9     ETH_MII_RXD0
PD10   ETH_MII_RXD1
PD8     ETH_MII_RX_DV/ETH_RMII_CRS_DV
PC1     ETH_MII_MDC
PA2     ETH_MII_MDIO
PA1     ETH_MII_RX_CLK/ETH_RMII_REF_CLK

      在stm32f107.c函数GPIO_Configuration()中,可以把和RMII无关的管脚去除配置,但是问题出现了。PC2和PB8在RMII中并没有用到,如果去除他们的配置,则程序就ping不通,而其他的比如PA0,PA3则没有问题。
    程序段如下:
  /* Configure PC1, PC2 and PC3 as alternate function push-pull */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_2;  //PC2用不到,为什么删除就不能运行了?
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_Init(GPIOC, &GPIO_InitStructure);

  /* Configure PB5, PB8, PB11, PB12 and PB13 as alternate function push-pull */  //PB8用不到,为什么删除就不能运行了?
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_Init(GPIOB, &GPIO_InitStructure);

附件中是完整的程序,应该在大部分107的板子上都可以无修改运行,编译环境为MDK和IAR。

请版主帮忙,为什么我屏蔽掉PC2和PB8,程序就不能正常运行了呢,我的程序哪儿出问题了呢?。

谢谢!

STM32F107_ETH_LwIP_RMII.zip (2.82 MB)

回复评论 (8)

没有人回复啊
请大家帮忙解决一下啊,谢谢了
点赞  2010-6-8 11:08
大哥 你看看程序啊
  你的宏定义。。。MII_MODE
点赞  2010-6-8 18:21
谢谢!我的粗心所致!困扰了我一天了!

非常感谢!!!!
点赞  2010-6-8 19:35
                                 感谢大家的指点
点赞  2010-6-11 10:34

回复 5楼 课程设计 的帖子

你好 ,我也出现了你的这种情况
PB11    ETH_MII_TX_EN

PB12    ETH_MII_TXD0

PB13    ETH_MII_TXD1

PC4    ETH_MII_RXD0

PC5   ETH_MII_RXD1

PA7     ETH_MII_RX_DV/ETH_RMII_CRS_DV

PC1     ETH_MII_MDC

PA2     ETH_MII_MDIO

PA1     ETH_MII_RX_CLK/ETH_RMII_REF_CLK
在你的例程上在stm32f107.c中修改引脚,但是ping不同啊,不知道怎么回事儿啊,希望能帮着解决下
点赞  2013-5-20 16:01
你好,楼主,为何下载不了?能发我一份吗?304231915@qq.com,不胜感激
点赞  2014-3-13 15:18
PING实现之后做什么比较好
点赞  2015-3-23 19:54
很棒
点赞  2018-4-27 16:32
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复