Other Parts Discussed in Thread:TMS320F2812您好,解决了这个问题,我又遇到了另一个问题,就是TMS320F2812的SPI 传输要是被中断打断了怎么办,例如我正在读一个flash设备,这时来了一个比spi 级别高的中断,请问下这时候spi会怎么操作?
Green Deng:
你好,这种情况的话SPI读flash的进程不会被打断,因为一旦芯片进入一个中断后,芯片的全局中断标志位就会被挂起,后续中断要等当前中断执行完再执行。
但是如果两个中断是同时发生的,那么芯片会优先响应优先级更高的那个,等到优先级更高的中断执行完之后再执行优先级低的那个。
,
jian lu:
是的,中断的原理和优先级我知道的,现在的问题是,当前我的TMS320F2812 CPU 正在读取从设备flash的数据,cs片选状态是低,sclk有波形,sdi和sdo上有波形变化,这时候 CPU 遇到了一个中断,例如外部中断(XINT1 等,软件设置的XINT1中断优先级最高),这时候CPU是会去响应中断的,但是在响应中断的过程中,spi读flash的过程还在执行吗?比如cs片选信号会不会保持低,sclk,sdi,sdo会不会还是有变化?
,
Green Deng:
jian lu 说:当前我的TMS320F2812 CPU 正在读取从设备flash的数据
上述操作是以中断的方式进行的吗?如果是中断方式的话我认为,如果你的CPU还在中断里面执行程序没有跳出中断的话,CPU不会去相应其他中断,也就是说SPI读flash的过程还在执行的。
,
jian lu:
上述操作不是采用中断的方式
,
Green Deng:
如果没有采用中断方式,而是一般顺序运行的程序的话,我认为是会被中断打断的。并且如果中断中有对这些引脚做初始化并使用的话,那么原先引脚的状态没办法保留。