/**
* @brief USART data information
*/
struct USART_TxDataLinkTypeDef {
uint16_t nb2Send; /*!< Nb of char to send*/
uint16_t nbSent; /*!< Nb sent char*/
uint16_t nbMsgLost; /*!< Nb lost msg (not enought space in ring buffer)*/
uint16_t buffSize; /*!< Size of send ring buffer*/
uint8_t* pt_StartTx_Buff; /*!< point to ring buffer*/
uint8_t* pt_EndTx_Buff; /*!< point to end ring buffer*/
uint8_t* pt_Tx_W; /*!< point to free space*/
uint8_t* pt_Tx_R; /*!< point to char to send*/
void (* CopyDataFcn)(uint8_t* ptSrc, uint16_t DataLength, struct
USART_TxDataLinkTypeDef* ptInfo);
void (* SendDataFcn)(struct USART_TxDataLinkTypeDef* ptInfo);
__IO USART_TxStatusTypeDef txStatus; /*!< Usart send communication status.*/
uint8_t txLock; /*!< lock data access */
};
上述结构体内,
void (* CopyDataFcn)(uint8_t* ptSrc, uint16_t DataLength, struct
USART_TxDataLinkTypeDef* ptInfo);
void (* SendDataFcn)(struct USART_TxDataLinkTypeDef* ptInfo);
ptInfo, 利用结构体本身 定义了结构体内的函数参数, 这种相互嵌套的定义,是什么意思?
代码是基于 simulink + STM32 插件 自动生成的,实际的代码是可以跑的。
|