Цитата(IgorKossak @ Jan 6 2012, 21:30)

Acvarif, научитесь, наконец, оформлять код.
Игнорирование моих комментариев Вам не поможет. Ещё одна моя правка Вашего сообщения и Вам обеспечена неделя read-only.
Да, помню. Читать мануалы?
Не то, чтобы сильно лень, всегда на это не хватает времени. Да и не всегда там есть, что нужно.
По поводу кода все понял.
Ниже инициализация GPIO для Ethernet sk-stm32f217 под новую библиотеку.
CODE
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB |
RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOG, ENABLE);
/* ETHERNET pins configuration */
/*
| | TYPE | num | GPIO port |
1. TD0 | out | 128 | PG13 |
2. TD1 | out | 129 | PG14 |
3. TEN | out | 70 | PB11 |
4. MC_REFC | out | 100 | PA8 |
5. CRS | in | 43 | PA7 |
6. RD0 | in | 44 | PC4 |
7. RD1 | in | 45 | PC5 |
8. MDC | out | 27 | PC1 |
9. MDIO |in/out| 36 | PA2 |
10.REFC | in | 35 | PA1 |
*/
// GPIO_Init(GPIOG,GPIO_Pin_13 + GPIO_AF + GPIO_Speed_100MHz + GPIO_PP + GPIO_AF11); /*1. PG13 -> TD0 */
// GPIO_Init(GPIOG,GPIO_Pin_14 + GPIO_AF + GPIO_Speed_100MHz + GPIO_PP + GPIO_AF11); /*2. PG14 -> TD1 */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_Init(GPIOG, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOG, GPIO_PinSource13, GPIO_AF_ETH);
GPIO_PinAFConfig(GPIOG, GPIO_PinSource14, GPIO_AF_ETH);
// GPIO_Init(GPIOB,GPIO_Pin_11 + GPIO_AF + GPIO_Speed_50MHz + GPIO_PP + GPIO_AF11); /*3. PB11 -> TEN */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource11, GPIO_AF_ETH);
// GPIO_Init(GPIOA,GPIO_Pin_8 + GPIO_AF + GPIO_Speed_100MHz + GPIO_AF0 + GPIO_PP); /*4. PA8 -> MCO1 50MHz output */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource8, GPIO_AF_MCO);
// GPIO_Init(GPIOA,GPIO_Pin_7 + GPIO_AF + GPIO_Speed_100MHz + GPIO_AF11); /*5. PA7 -> CRS */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_ETH);
// GPIO_Init(GPIOC,GPIO_Pin_4 + GPIO_AF + GPIO_Speed_100MHz + GPIO_AF11); /*6. PC4 -> RD0 */
// GPIO_Init(GPIOC,GPIO_Pin_5 + GPIO_AF + GPIO_Speed_100MHz + GPIO_AF11); /*7. PC5 -> RD1 */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOC, GPIO_PinSource8, GPIO_AF_ETH);
GPIO_PinAFConfig(GPIOC, GPIO_PinSource8, GPIO_AF_ETH);
// GPIO_Init(GPIOC,GPIO_Pin_1 + GPIO_AF + GPIO_Speed_50MHz + GPIO_PP + GPIO_AF11); /*8. PC1 -> MDC */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOC, GPIO_PinSource11, GPIO_AF_ETH);
// GPIO_Init(GPIOA,GPIO_Pin_2 + GPIO_AF + GPIO_Speed_50MHz + GPIO_OD + GPIO_AF11); /*9. PA2 -> MDIO */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource11, GPIO_AF_ETH);
// GPIO_Init(GPIOA,GPIO_Pin_1 + GPIO_AF + GPIO_Speed_50MHz + GPIO_AF11); /*10.PA1 -> REFC */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource11, GPIO_AF_ETH);
А здесь конфигурация RCC и SYSCFG для Ethernet stm32 платки Startekit
CODE
// Enable SYSCFG clock
// RCC->APB2ENR |= (1 << 14);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
#ifdef RMII_MODE
// SYSCFG->PMC |= (1<<23);
SYSCFG_ETH_MediaInterfaceConfig(SYSCFG_ETH_MediaInterface_RMII);
#else
// SYSCFG->PMC &= (~(1 << 23));
SYSCFG_ETH_MediaInterfaceConfig(SYSCFG_ETH_MediaInterface_MII);
#endif
// SYSCFG->CMPCR |= (1 << 0);
SYSCFG_CompensationCellCmd(ENABLE);
/*
RCC AHB1 peripheral clock register (RCC_AHB1ENR)
Bit 25 ETHMACEN: Ethernet MAC clock enable
Bit 26 ETHMACTXEN: Ethernet Transmission clock enable
Bit 27 ETHMACRXEN: Ethernet Reception clock enable
*/
// RCC->AHB2ENR |= (1 << 5);
RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_HASH, ENABLE);
// RCC->AHB1ENR |= (1 << 25) + (1 << 26) + (1 << 27) + (1 << 12);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_ETH_MAC | RCC_AHB1Periph_ETH_MAC_Tx |
RCC_AHB1Periph_ETH_MAC_Rx | RCC_AHB1Periph_CRC, ENABLE);
Надеюсь теперь MAC запустится
Сообщение отредактировал Acvarif - Jan 7 2012, 20:02