#include "stm32_spi.h" __IO uint32_t TIMEOUT=LONG_TIMEOUT; /*********************************************** 调用方式: SPI_Inital() SDO ---> PA5 CS ---> PB6 SCLK ---> PA5 SDI ---> PA7 DRDY ---> PB6 返回值: 函数说明:MAX31865 硬件spi初始化 ************************************************/ void SPI_Inital(void) { SPI_InitTypeDef SPI_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; // GPIO RCC_APB2PeriphClockCmd(SPI_GPIO_CLK, ENABLE); RCC_APB2PeriphClockCmd(SPI_CS_GPIO_CLK, ENABLE); /*!< SPI Periph clock enable */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE); /*!< GPIO configuration */ /*!< Configure SPI pins */ GPIO_InitStructure.GPIO_Pin = SPI_SCK|SPI_MOSI|SPI_MISO; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(MAX31865_SPI_PORT, &GPIO_InitStructure); /*!< Configure SPI pin: CS */ GPIO_InitStructure.GPIO_Pin = SPI_CS; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(MAX31865_IO_PORT, &GPIO_InitStructure); //set CS high GPIO_SetBits(MAX31865_IO_PORT, SPI_CS); /*!< SPI 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_High; SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge; SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8; SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; SPI_InitStructure.SPI_CRCPolynomial = 7; /* SPI Peripheral Enable */ SPI_Cmd(SPI1, ENABLE); /* Apply SPI configuration after enabling it */ SPI_Init(SPI1, &SPI_InitStructure); } /*********************************************** 调用方式: SPI_Write() 返回值: 函数说明:SPI写数据 ************************************************/ uint8_t SPI_Write(uint8_t *buffer, uint8_t nBytes) { uint8_t i; for(i=0;i