GPIO for trigger function, but it always give us two triggers

I follow this issue almost two month.

We use one GPIO for trigger function. we configure it with falling trigger, but it always give us two triggers.

Receive function:

void InTrigerThread::run()
{
    while(workerEnd == false)
    {
        nfds = epoll_wait(epollfd, events,MAX_PLC_NUM,TIMEOUT);
        if ((nfds < 0)||(nfds ==0))
        {
            qDebug()<< "nfds is" << nfds;
            continue;
        }
        for(int i= 0;i<nfds;i++ )
        {
            for(int j=0;j < inputCnt; j++)
            {
                if((events[i].data.fd == gpio_fd[j])&& (events[i].events&EPOLLPRI))
                {
                    len = read(events[i].data.fd,buf,sizeof(buf));
                    lseek(events[i].data.fd,0,SEEK_SET);

                    if(LogHandler::getInstance()->logIsEnabled())
                    {
                        qDebug() << "InTrigerThread gpioTrigered GPIO  == "<<inputGpioList[j];
                    }
                    emit gpioTrigered(inputGpioList[j]);
                }
            }
        }
     }
}

The GPIO trigger with failing, the first signal is OK. But we always received a signal with rising(red box).
image

image

We test it with oscilloscope, when the signal with a slop, it will be triggered, this is an inevitable problem on Jetson Nano.

Thanks in advance

Not quite understand your case, please share the circuit connection on this. Is the GPIO output or input?