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

[复制链接]
8314|6
 楼主| hopeasy 发表于 2010-6-7 21:34 | 显示全部楼层 |阅读模式
本帖最后由 hopeasy 于 2010-6-7 21:40 编辑

问题描述:程序出自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, 下载次数: 2027

 楼主| hopeasy 发表于 2010-6-8 11:08 | 显示全部楼层
没有人回复啊
请大家帮忙解决一下啊,谢谢了
ducha 发表于 2010-6-8 18:21 | 显示全部楼层
大哥 你看看程序啊
  你的宏定义。。。MII_MODE
 楼主| hopeasy 发表于 2010-6-8 19:35 | 显示全部楼层
谢谢!我的粗心所致!困扰了我一天了!

非常感谢!!!!
lg_0755 发表于 2010-6-11 10:34 | 显示全部楼层
感谢大家的指点
lchunsong 发表于 2013-6-27 17:01 | 显示全部楼层
我的以太网芯片采用的是IP175C,CPU是STM32F107,采用RMII接口,为什么你的代码我运行不了
,
hawksabre 发表于 2013-6-27 18:56 | 显示全部楼层
不是很了解    楼主   帮你顶一个   看看别人的意见吧    顶起来   很好   很强大  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

40

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部