我怎么知道spi
通信(中断模式)是否出错?
例如 CAN 有 typedef void (*flexcan_error_callback_t)(uint8_t instance, flexcan_event_type_t eventType, flexcan_state_t *flexcanState);
并且,有这个枚举,
typedef enum {
FLEXCAN_EVENT_RX_COMPLETE, /*!< 在配置的 Rx MB 中接收到一个帧。*/ FLEXCAN_EVENT_RXFIFO_COMPLETE, /*!< Rx FIFO 中接收到一个帧。*/ FLEXCAN_EVENT_RXFIFO_WARNING, /*!< Rx FIFO 几乎已满(5 帧)。*/ FLEXCAN_EVENT_RXFIFO_OVERFLOW, /*!< Rx FIFO 已满(传入消息丢失)。*/ FLEXCAN_EVENT_TX_COMPLETE, /*!< 从配置的 Tx MB 发送了一个帧。*/ #if FEATURE_CAN_HAS_WAKE_UP_IRQ
FLEXCAN_EVENT_WAKEUP_
tiMEOUT, /*!< 由于超时发生唤醒事件。*/ FLEXCAN_EVENT_WAKEUP_MATCH, /*!< 由于匹配发生唤醒事件。*/ FLEXCAN_EVENT_SELF_WAKEUP, /*!< 发生自唤醒事件。*/ #endif /* FEATURE_CAN_HAS_WAKE_UP_IRQ */ #if FEATURE_CAN_HAS_DMA_ENABLE FLEXCAN_EVENT_DMA_COMPLETE, /*!< DMA 上发生完整传输 */ FLEXCAN_EVENT_DMA_ERROR, /*!< DMA 传输失败,因为 DMA 通道错误 */ #endif /
*
FEATURE_CAN_HAS_DMA_ENABLE */
FLEXCAN_EVENT_ERROR
} flexcan_event_type_t;
但是 flexio spi 只有
typedef enum {
SPI_EVENT_END_TRANSFER = 0
} spi_event_t; /* 回调所有支持 SPI 特性的外设 */
typedef void (*spi_callback_t)(void *driverState, spi_event_t event, void *userData);