我使用了SPI口扩展了一个UART口,在XINT中断中读取接收数据,但是在运行中发现个问题感觉很困惑:
在XINT中断服务程序中,使用ir=SpiaRegs.SPIRXBUF;读取接收数据。SpiaRegs.SPIRXBUF值与要接收的数值始终是一致的,但是执行完该句后,ir值不变。
具体尝试方法有:
1,ir为局部变量和全局变量结果都一样,ir值未被幅值。
2,改为单步运行时ir可被正确赋值,但连续运行停至断点处观察ir值不能被修改。
3,第二次进入中断执行至赋值语句后边的断点时,ir值被修改为了第一次进入中断想要被修改的值,即以后的中断中,ir总是被赋予上次中断想要而不得赋值的值。