|
|
void bsp_spi_init()
{
FL_GPIO_InitTypeDef gpio;
FL_SPI_InitTypeDef spi;
gpio.pin = FL_GPIO_PIN_8;
gpio.mode = FL_GPIO_MODE_OUTPUT;
gpio.outputType = FL_GPIO_OUTPUT_PUSHPULL;
gpio.pull = FL_ENABLE;
gpio.remapPin = FL_DISABLE;
FL_GPIO_Init(GPIOB, &gpio); //nss
FL_GPIO_SetOutputPin(GPIOB, FL_GPIO_PIN_8);
gpio.pin = FL_GPIO_PIN_9 | FL_GPIO_PIN_10 | FL_GPIO_PIN_11;
gpio.mode = FL_GPIO_MODE_DIGITAL;
gpio.outputType = FL_GPIO_OUTPUT_PUSHPULL;
gpio.pull = FL_DISABLE;
gpio.remapPin = FL_DISABLE;
FL_GPIO_Init(GPIOB, &gpio);
spi.transferMode = FL_SPI_TRANSFER_MODE_FULL_DUPLEX;
spi.mode = FL_SPI_WORK_MODE_MASTER;
spi.dataWidth = FL_SPI_DATA_WIDTH_8B;
spi.clockPolarity = FL_SPI_POLARITY_NORMAL;
spi.clockPhase = FL_SPI_PHASE_EDGE1;
spi.softControl = FL_DISABLE;
spi.baudRate = FL_SPI_BAUDRATE_DIV8;
spi.bitOrder = FL_SPI_BIT_ORDER_MSB_FIRST;
FL_SPI_ClearTXBuff(SPI1);
FL_SPI_ClearRXBuff(SPI1);
FL_SPI_Init(SPI1, &spi);
}
uint8_t bsp_spi_write_read_byte(uint8_t data)
{
FL_SPI_WriteTXBuff(SPI1, data);
while(!(FL_SPI_IsActiveFlag_TXBuffEmpty(SPI1)));
while(!(FL_SPI_IsActiveFlag_RXBuffFull(SPI1)));
data = FL_SPI_ReadRXBuff(SPI1);
return data;
}
接收到的数据都是0XFF,这是正常的吗,但是可以正常写,写的波形也正常,但是到读好像就有问题,感觉是SPI1有问题,有其他人说用SPI2可以正常,不太清除,不知道问题在哪里?
|
|