typedef struct 作用是把此结构体定义成一个全新的数据类型(例如int,float)
例如:
typedef struct
{
bsp_spi_number_t spi;
uint8_t *pTxData;
uint8_t *pRxData;
uint16_t Size;
uint32_t Timeout;
} BSP_SPI_PARAMETER;
此时,BSP_SPI_PARAMETER 就是一种全新的数据类型了。
在使用时,就要把它当成一种数据类型来使用。
比如我要调用HAL_SPI_TransmitReceive()函数:
void bsp_spi_readwrite(BSP_SPI_PARAMETER *parameter)
{
HAL_SPI_TransmitReceive(&hspi1, parameter->pTxData,parameter->pRxData, parameter->Size, parameter->Timeout);
}
此时我函数里面的形参就是 parameter结构体,其类型是BSP_SPI_PARAMETER 类型的,*表示只传递结构体指针(4字节)。
在使用时,我需要对我的形参定义一个parameter:
BSP_SPI_PARAMETER parameter = {spi,pTxData,pRxData,Size, Timeout};
typedef enum 类似