【问题】:
使用nRF52832的SPI2和TIMER,在TIMER定时中断中进行SPI写操作,单独调试TIMER定时、SPI读写都OK,两者结合起来程序就挂死了;
【原因】:
SPI2和TIMER默认初始化优先级都是4,应用时TIMER定时中断产生,进入中断处理函数进行SPI写操作,而SPI完成一次写操作后,需要等待SPI中断中的完成标志位置位,但是,TIEMR和SPI的中断优先级相同,无法此时还无法进入SPI的中断中,所以程序卡死在此处;
【解决方案】: 提高SPI2的中断优先级;