Cypress技术论坛
直播中

绝代双骄

11年用户 1076经验值
私信 关注

FX3/CX3(CYUSB3065) GPIO不产生输入中断怎么解决?

我使用GPIO做输入中断,但是进不去中断,请问是我哪里弄错了吗?以下是我的初始化及中断代码:


// gpio int
void CyFxGpioIntrCb (uint8_t gpioId)
{
CyBool_t gpioValue = CyFalse;
CyU3PReturnStatus_t apiRetStatus = CY_U3P_SUCCESS;


/* Get the status of the pin */
apiRetStatus = CyU3PGpioGetValue (gpioId,  gpioValue);


if (gpioValue == CyTrue)
{
CyU3PGpioSetValue (22, CyFalse); // FOR IR LED
}
else
{
CyU3PGpioSetValue (22, CyTrue); // FOR IR LED
}


if( GPIO_SSOR_XVS == gpioId)
{
}
}


// init gpio
void
CyFxGpioInit (void)
{
CyU3PGpioClock_t gpioClock;
CyU3PGpioComplexConfig_t gpioConfig;
CyU3PReturnStatus_t apiRetStatus = CY_U3P_SUCCESS;


/* Init the GPIO module */
gpioClock.fastClkDiv = 2;
gpioClock.slowClkDiv = 0;
gpioClock.simpleDiv = CY_U3P_GPIO_SIMPLE_DIV_BY_2;
gpioClock.clkSrc = CY_U3P_SYS_CLK;
gpioClock.halfDiv = 0;


vJackyTestPrintNormal (4, "CyU3PGpioInit beginn");
apiRetStatus = CyU3PGpioInit( gpioClock, CyFxGpioIntrCb);
if (apiRetStatus != 0)
{
/* Error Handling */
vJackyTestPrintErr (4, "CyU3PGpioInit failed, error code = %dn", apiRetStatus);
// CyFxAppErrorHandler(apiRetStatus);
}




CyU3PGpioSimpleConfig_t gpioConf = {0};
gpioConf.inputEn     = CyTrue;
gpioConf.driveLowEn  = CyFalse;
gpioConf.driveHighEn = CyFalse;
gpioConf.outValue    = CyFalse;
gpioConf.intrMode    = CY_U3P_GPIO_INTR_BOTH_EDGE;


apiRetStatus = CyU3PGpioSetSimpleConfig (44,  gpioConf);


}


main function:
io_cfg.gpioSimpleEn[1]  = io_cfg.gpioSimpleEn[1]  | FX3_GPIO_TO_HIFLAG(44);
                                                                                                                                                                                                                                                                                                                                                                                                

回帖(1)

贾利利

2024-2-29 10:52:35
去掉CyU3PMipicsiInitializeGPIO,就可以了
举报

更多回帖

发帖
×
20
完善资料,
赚取积分