我正在为我的项目开发一个新的 GPIF 状态机,在数据流期间,我接收到 PIB 错误函数的回调事件,当我使用 `CYU3P_GET_PIB_ERROR_TYPE(cbArg);` 提取错误时,我看到这些错误是 CYU3P_PIB_ERR_NONE。 为什么我的 PIB 错误回调会通知我没有错误? 我是否使用了正确的定义来解码函数的输入参数? 我的代码如下
sta
tic void CyFxUVCAppPibCallback ( CyU3PPibIntrType cbType, uint16_t cbArg){ uint8_t thrError = CYU3P_GET_PIB_ERROR_TYPE(cbArg); /* Check for PIB error and an overrun */ if ((cbType == CYU3P_PIB_INTR_ERROR) ((cbArg == 0x1005) || (cbArg == 0x1006))) { if (!back_flow_detected) { CyU3PDebugPrint (4, "Backflow detected (0x%x)...rn", thrError); back_flow_detected = 1; } } switch (thrError) { case CYU3P_PIB_ERR_THR0_WR_OVERRUN: /* 0x05 */ glThr0Overrun++; glOverrunErrors++; break; case CYU3P_PIB_ERR_THR1_WR_OVERRUN: /* 0x06 */ glThr1Overrun++; glOverrunErrors++; break; case CYU3P_PIB_ERR_THR2_WR_OVERRUN: /* 0x07 */ glThr2Overrun++; break; case CYU3P_PIB_ERR_THR0_SCK_INACTIVE: /* 0x12 */ glThr0Inactive++; break; case CYU3P_PIB_ERR_THR1_SCK_INACTIVE: /* 0x1A */ glThr1Inactive++; break; case CYU3P_PIB_ERR_THR2_SCK_INACTIVE: /* 0x22 */ glThr2Inactive++; break; case CYU3P_PIB_ERR_THR0_DIRECTION: /* 0x01 */ glThr0Direction++; break; case CYU3P_PIB_ERR_THR1_DIRECTION: /* 0x02 */ glThr1Direction++; break; case CYU3P_PIB_ERR_THR2_DIRECTION: /* 0x03 */ glThr2Direction++; break; default: glThrXOther[thrError]++; break; }}