当使用AW9523B芯片驱动16路LED时,某些LED并没有执行点亮的操作,但某些LED灯确实被点亮了。由于AW9523B芯片是IIC驱动,在此发现是在执行IIC数据读写时,STM32定时器产生了中断,导致IIC读写数据时被打断,从而导致上述问题发生。
解决方法:
AW9523B_Write_OneByte(。。。)
AW9523B_Read_OneByte(。。。)
在上述函数里增加下述两个函数即可。
__enable_irq(); /* 使能全局中断 */
__disable_irq(); /* 禁止全局中断*/