typedef struct __SPI_HandleTypeDef
{
SPI_TypeDef *Instance;
SPI_InitTypeDef Init;
uint8_t *pTxBuffPtr;
uint16_t TxXferSize;
__IO uint16_t TxXferCount;
uint8_t *pRxBuffPtr;
uint16_t RxXferSize;
__IO uint16_t RxXferCount;
void (*RxISR)(struct __SPI_HandleTypeDef *hspi);
void (*TxISR)(struct __SPI_HandleTypeDef *hspi);
DMA_HandleTypeDef *hdmatx;
DMA_HandleTypeDef *hdmarx;
HAL_LockTypeDef Lock;
__IO HAL_SPI_StateTypeDef State;
__IO uint32_t ErrorCode;
#if (USE_HAL_SPI_REGISTER_CALLBACKS == 1U)
void (* TxCpltCallback)(struct __SPI_HandleTypeDef *hspi);
void (* RxCpltCallback)(struct __SPI_HandleTypeDef *hspi);
void (* TxRxCpltCallback)(struct __SPI_HandleTypeDef *hspi);
void (* TxHalfCpltCallback)(struct __SPI_HandleTypeDef *hspi);
void (* RxHalfCpltCallback)(struct __SPI_HandleTypeDef *hspi);
void (* TxRxHalfCpltCallback)(struct __SPI_HandleTypeDef *hspi);
void (* ErrorCallback)(struct __SPI_HandleTypeDef *hspi);
void (* AbortCpltCallback)(struct __SPI_HandleTypeDef *hspi);
void (* MspInitCallback)(struct __SPI_HandleTypeDef *hspi);
void (* MspDeInitCallback)(struct __SPI_HandleTypeDef *hspi);
#endif
} SPI_HandleTypeDef;