STM32H743 SPI 时钟无输出

2019-07-20 01:28发布

怀疑配置有问题 但是又找不到问题在哪  用的SPI2    大佬们有H743  相关SPI配置的例程嘛   SPI配置部分源码如下: SCSI0 SCLKI1 MISOI2 MOSII3 INTH15或PH2  RSTH14
CS 信号测了下在读写时候是有拉低的, 但是 SCLK MISO MOSI 三个信号线都没有输出
SPI_HandleTypeDef SPI1_Handler;
void SPI_Configuration(void)
{
               
                SPI1_Handler.Instance=SPI2;                       
    SPI1_Handler.Init.Mode=SPI_MODE_MASTER;            
    SPI1_Handler.Init.Direction=SPI_DIRECTION_2LINES;   
    SPI1_Handler.Init.DataSize=SPI_DATASIZE_8BIT;     
    SPI1_Handler.Init.CLKPolarity=SPI_POLARITY_LOW;
    SPI1_Handler.Init.CLKPhase=SPI_PHASE_1EDGE;      
    SPI1_Handler.Init.NSS=SPI_NSS_SOFT;               
    SPI1_Handler.Init.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_2;
    SPI1_Handler.Init.FirstBit=SPI_FIRSTBIT_MSB;        
    SPI1_Handler.Init.TIMode=SPI_TIMODE_DISABLE;        
    SPI1_Handler.Init.CRCCalculation=SPI_CRCCALCULATION_DISABLE;
    SPI1_Handler.Init.CRCPolynomial=7;               
    HAL_SPI_Init(&SPI1_Handler);
   
    __HAL_SPI_ENABLE(&SPI1_Handler);                  
       
    SPI1_ReadWriteByte(0x00);                       
}



void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi)
{
    GPIO_InitTypeDef GPIO_Initure;

    __HAL_RCC_GPIOI_CLK_ENABLE();       //ê1ÄüGPIOAê±Öó
    __HAL_RCC_SPI2_CLK_ENABLE();        //ê1ÄüSPI1ê±Öó

    //PA5,6,7
    GPIO_Initure.Pin=GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3;
    GPIO_Initure.Mode=GPIO_MODE_AF_PP;              //¸′óÃíÆíìêä3ö
    GPIO_Initure.Pull=GPIO_PULLUP;                  //éÏà-
    GPIO_Initure.Speed=GPIO_SPEED_FREQ_VERY_HIGH;             //¿ìËù            
    HAL_GPIO_Init(GPIOI,&GPIO_Initure);
}


void W5500_GPIO_Configuration(void)
{
        GPIO_InitTypeDef  GPIO_Initure;;               //¿aÆôGPIOAê±Öó
    __HAL_RCC_GPIOI_CLK_ENABLE();               //¿aÆôGPIOCê±Öó
          __HAL_RCC_GPIOH_CLK_ENABLE();
       
        /* W5500_RSTòy½Å3õê¼»ˉÅäÖÃ(PC5) */
        GPIO_Initure.Pin  = W5500_RST;
        GPIO_Initure.Speed=GPIO_SPEED_FREQ_VERY_HIGH;
        GPIO_Initure.Mode = GPIO_MODE_OUTPUT_PP;
        GPIO_Initure.Pull=GPIO_PULLUP;                  //éÏà-
        HAL_GPIO_Init(W5500_RST_PORT, &GPIO_Initure);
        HAL_GPIO_WritePin(W5500_RST_PORT,W5500_RST,1);


       
        /* 3õê¼»ˉCSòy½Å */
        GPIO_Initure.Pin = W5500_SCS;
        GPIO_Initure.Speed=GPIO_SPEED_FREQ_VERY_HIGH;
        GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP;
        GPIO_Initure.Pull=GPIO_PULLUP;                  //éÏà-
        HAL_GPIO_Init(W5500_SCS_PORT, &GPIO_Initure);
        HAL_GPIO_WritePin(W5500_SCS_PORT,W5500_SCS,GPIO_PIN_SET);
       
        /* W5500_INTòy½Å3õê¼»ˉÅäÖÃ(PC4) */       
        GPIO_Initure.Pin = W5500_INT;
        GPIO_Initure.Mode = GPIO_MODE_IT_FALLING;
        GPIO_Initure.Pull=GPIO_PULLUP;
        HAL_GPIO_Init(W5500_INT_PORT, &GPIO_Initure);
       


        /* Connect EXTI Line4 to PC4 */
        HAL_NVIC_SetPriority(EXTI4_IRQn,6,0);       //
    HAL_NVIC_EnableIRQ(EXTI4_IRQn);             //
}



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
KRIS777
1楼-- · 2019-07-20 18:39
现在的情况是   芯片版本寄存器读出来好像高低位反了  应该是0x04  读出来0x40  其他寄存器读出来是0x00
读写信号看了下是有信号输出的  
KRIS777
2楼-- · 2019-07-20 20:31
 精彩回答 2  元偷偷看……

一周热门 更多>