求助:ENC28J60接SPI1初始化失败问题,连接电脑一直ping不通

2019-07-20 23:58发布

这几天用STM32F107VCT6的SPI1做 ENC28J60测试的时候,连电脑一直ping不通
用的是原子教你玩STM32 库函数版》 50章的例程改的,原来的程序用的是SPI2,
原来引脚
CS    INT    MISO   MOSI   SCK    RST
PG8   PD2    B14   PB15   PB13   PG6
现在我的引脚定义
CS    INT    MISO   MOSI   SCK    RST 
PA4   A8    A6    A7    A5    A15 

修改后的程序:
void SPI1_Init(void) 

   SPI_InitTypeDef SPI_InitStructure; 
   GPIO_InitTypeDef GPIO_InitStructure; 

   /* Enable SPI1 and GPIOA clocks */ 
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE); 
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); 


   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;   
   GPIO_Init(GPIOA, &GPIO_InitStructure); 
   GPIO_SetBits(GPIOA,GPIO_Pin_15); 

   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_8; 
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 
   GPIO_Init(GPIOA, &GPIO_InitStructure); 
   GPIO_SetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_8); 
    
   /* Configure SPI1 pins: NSS, SCK, MISO and MOSI */ 
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7; 
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; 
   GPIO_Init(GPIOA, &GPIO_InitStructure);  

   //GPIO_SetBits(GPIOA,GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7); 
   /* SPI1 configuration */  
   SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; 
   SPI_InitStructure.SPI_Mode = SPI_Mode_Master; 
   SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; 
   SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low; 
   SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge; 
   SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; 
   SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4; 
   SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; 
   SPI_InitStructure.SPI_CRCPolynomial = 7; 
   SPI_Init(SPI1, &SPI_InitStructure); 

   /* Enable SPI1  */ 
   SPI_Cmd(SPI1, ENABLE); 

其他例程的东西我都没有动,连接电脑一直Ping不通啊,弄了好几天了,求大神指导,求原子哥教教我,感激不尽。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。