|
HAL库函数编程,同一块板子里SPI1做主机,SPI2做从机,SPI和相关GPIO口配置完成后,主程序里用HAL_SPI_Receive_IT()准备接受数据。图片里是main.c中发送数据的程序和中断回调函数(片选NSS写在SPI2下了,不过设置NSS为软件控制,这个应该不影响)目前遇到的情况是:
1、可以进入一次中断但只能进入一次。怀疑是没有清除中断标志位,但是我甚至不知道keil调试中应该加什么寄存器来查看(手册里写的寄存器好像都是SPI2S->TXDR这样,难道对于SPI1和SPI2都是这个寄存器吗?)
2、从机部分接收不到数据,主机也收不到从机发回的数据。这个也许是我函数调用错了,但是HAL_SPI_Receive_IT()应该能接受数据才对吧?
3、刚进入中断的时候会修改全局变量Slave_Tx_value为0,本来前面初始化为6,所以我在中断中又设置了一次
HAL_SPI_Receive_IT()能进入中断是否说明至少spi引脚配置得没问题?
在这个问题上纠结了两天了也没解决,希望能得到大佬指点,万分万分感谢!!
|
|