在imxrt1052的板子上使用ch438芯片,我是移植在nuttx操作系统的,用某一个口不断去收发,发现每次只能触发一次中断,由于在中断函数里进行了信号量的释放,所以后面触发不了中断导致读的时候等不到信号量,就卡死了,大家有遇到过吗
热门产品 :
CH394: 以太网协议栈芯片
在imxrt1052的板子上使用ch438芯片,我是移植在nuttx操作系统的,用某一个口不断去收发,发现每次只能触发一次中断,由于在中断函数里进行了信号量的释放,所以后面触发不了中断导致读的时候等不到信号量,就卡死了,大家有遇到过吗
您好,CH438的中断方式为低电平触发方式,您可以将您的主控芯片中断触发方式设置为低电平。如果主控芯片没有这种触发方式,您可以在中断服务函数处理的最后,判断INT脚是否继续为低,如果是的话,就别释放信号量
@ 2# 那这样如果引脚持续为低,信号量永远得不到释放,读取不到数据
那您在释放信号量的之后,处理的线程这里处理函数到最后,在读取一下主控IO管脚的电平状态。没有就正常结束。有低电平再去处理,没有就是正常释放信号量。