本人最近正正在调试STM32F405两块处理器间的SPI通讯,主片的发送程序已调好,功能是循环发送1-100的数字(数据格式为16位),从机的数据接收打算采用中断的方式用一个数组去接收发送的数据,丛机和主机的SPI配置基本一致,只是主从的区别,另外从机的使能采用硬件控制,主机通过一个IO口置地来控制从机的使能。另外中断使能,中断优先级也设置好了。主机的时钟速率为2M多,中断接收数据的程序采用以下流程:查询中断标志位,清除中断标志位,接收本次数据,计数器加1,判断计数器是否大于99,大于则归0,否则出中断。然后调试过程中诡异的事情发生了,如果在中断函数中设置断点,查看变量,可以看到接收到数据,如果全速运行,数据一直是0,及时偶尔有的数据变化,也是跳动一下归0,后来我通过在中断函数中加入标志位的方法(进入中断数组接收完毕置位的方法)去全速运行看标志位,标志位一直为0,也就是说基本没怎么进入中断。。。求解各位大神帮忙解答
|