中科因仑“3+1”工程特种兵精英论坛

标题: STM32 F051 SPI1收不到返回数据 [打印本页]

作者: 张衍波    时间: 2015-10-7 13:10
标题: STM32 F051 SPI1收不到返回数据
有谁用过STM32F051C8T6 的SPI1的啊(PB3,PB4,PB5)脚,发出信号正常,但收不到数据,示波器显示返回的信号,有微小的电平变化,初始化代码如下

#define LD_CS_ClockEnable()                             RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE)
#define LD_CS_PIN                     GPIO_Pin_12
#define LD_CS_PORT                    GPIOA

#define LD_CS_L()                     GPIO_ResetBits(LD_CS_PORT, LD_CS_PIN)
#define LD_CS_H()                     GPIO_SetBits(LD_CS_PORT, LD_CS_PIN)

#define LD_SPI            SPI1

#define LD_SPI_GPIO_ClockEnable()     RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA | RCC_AHBPeriph_GPIOB, ENABLE)
#define LD_SPI_ClockEnable()          RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE)

#define LD_SPIS_PIN          GPIO_Pin_15
#define LD_SPIS_PORT         GPIOA

#define LD_SPIS_L()          GPIO_ResetBits(LD_SPIS_PORT, LD_SPIS_PIN)
#define LD_SPIS_H()          GPIO_SetBits(LD_SPIS_PORT, LD_SPIS_PIN)

#define LD_SCK_PIN           GPIO_Pin_3
#define LD_SCK_PORT          GPIOB
#define LD_SCK_SOURCE        GPIO_PinSource3
#define LD_SCK_AF            GPIO_AF_0

#define LD_MISO_PIN          GPIO_Pin_4
#define LD_MISO_PORT         GPIOB
#define LD_MISO_SOURCE       GPIO_PinSource4
#define LD_MISO_AF           GPIO_AF_0

#define LD_MOSI_PIN          GPIO_Pin_5
#define LD_MOSI_PORT         GPIOB
#define LD_MOSI_SOURCE       GPIO_PinSource5
#define LD_MOSI_AF           GPIO_AF_0

          SPI_InitTypeDef  SPI_InitStruct;
          GPIO_InitTypeDef GPIO_InitStruct;

          LD_SPI_GPIO_ClockEnable();
          LD_SPI_ClockEnable();

                   /*!< Configure SD_SPI pins: SCK */
                GPIO_InitStruct.GPIO_Pin = LD_SCK_PIN;
                GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
                GPIO_InitStruct.GPIO_Speed = GPIO_Speed_Level_3;
                GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
                GPIO_InitStruct.GPIO_PuPd  = GPIO_PuPd_UP;
                GPIO_Init(LD_SCK_PORT, &GPIO_InitStruct);

           /*!< Configure SD_SPI pins: MISO */
                GPIO_InitStruct.GPIO_Pin = LD_MISO_PIN;
                GPIO_Init(LD_MISO_PORT, &GPIO_InitStruct);

  /*!< Configure SD_SPI pins: MOSI */
                GPIO_InitStruct.GPIO_Pin =LD_MOSI_PIN;
                GPIO_Init(LD_MOSI_PORT, &GPIO_InitStruct);

           /* Connect PXx to SD_SPI_SCK */
                GPIO_PinAFConfig(LD_SCK_PORT, LD_SCK_SOURCE, LD_SCK_AF);

                /* Connect PXx to SD_SPI_MISO */
                GPIO_PinAFConfig(LD_MISO_PORT, LD_MISO_SOURCE, LD_MISO_AF);

                /* Connect PXx to SD_SPI_MOSI */
                GPIO_PinAFConfig(LD_MOSI_PORT, LD_MOSI_SOURCE, LD_MOSI_AF);

                         /*!< Configure SD_SPI_CS_PIN pin: SD Card CS pin */
                GPIO_InitStruct.GPIO_Pin =LD_SPIS_PIN;
                GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
                GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
                GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;
                GPIO_InitStruct.GPIO_Speed = GPIO_Speed_Level_3;
                GPIO_Init(LD_SPIS_PORT, &GPIO_InitStruct);

                LD_SPIS_H();


                SPI_Cmd(LD_SPI, DISABLE); /*!< SD_SPI disable */
                  /*!< SD_SPI Config */
                SPI_InitStruct.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
                SPI_InitStruct.SPI_Mode = SPI_Mode_Master;
                SPI_InitStruct.SPI_DataSize = SPI_DataSize_8b;
                SPI_InitStruct.SPI_CPOL = SPI_CPOL_High;
                SPI_InitStruct.SPI_CPHA = SPI_CPHA_2Edge;
                SPI_InitStruct.SPI_NSS = SPI_NSS_Soft;
                SPI_InitStruct.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_64;
                SPI_InitStruct.SPI_FirstBit = SPI_FirstBit_MSB;
                SPI_InitStruct.SPI_CRCPolynomial = 7;
                SPI_Init(LD_SPI, &SPI_InitStruct);
                SPI_RxFIFOThresholdConfig(LD_SPI, SPI_RxFIFOThreshold_QF);
                SPI_Cmd(LD_SPI, ENABLE); /*!< SD_SPI enable */
转载






欢迎光临 中科因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/) Powered by Discuz! X3.4