我使用了SPI口扩展了一个UART口,在XINT中断中读取接收数据,但是在运行中发现个问题感觉很困惑:
在XINT中断服务程序中,使用ir=SpiaRegs.SPIRXBUF;读取接收数据。SpiaRegs.SPIRXBUF值与要接收的数值始终是一致的,但是执行完该句后,ir值不变。
具体尝试方法有:
1,ir为局部变量和全局变量结果都一样,ir值未被幅值。
2,改为单步运行时ir可被正确赋值,但连续运行停至断点处观察ir值不能被修改。
3,第二次进入中断执行至赋值语句后边的断点时,ir值被修改为了第一次进入中断想要被修改的值,即以后的中断中,ir总是被赋予上次中断想要而不得赋值的值。
shaolun ji:没有开FIFO,在该句赋值语句后,有判断语句if(ir==0xaa){……},在该大括号内语句打断点,总是能停在断点处,将判断语句改为if(ir==0x00){……}同样能进断点处,这现象无语了
TI中文支持网


