有谁用过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 */
转载
|