STM32作为SPI的主器件,RF模块作为从器件时,STM32可以用SPI中断的方式接收读取RF模块的数据吗?

2019-07-20 23:27发布

接触STM32不是太久,想自己DIY一个在家自用的视频防盗传输作品,方案如附件图所示,在调试SPI时遇到了不解的问题,哪一位大神指点,万分感激;

1、STM32作为SPI的主器件,RF模块作为从器件时,STM32可以用SPI中断的方式接收读取RF模块的数据吗?一般是怎么触发STM32的SPI中断去读取RF模块的数据的啊?

2、STM32的SPI中断在接收数据的过程中会打断主循环吗?也就是说SPI中断在接收数据的过程中,main()函数中的主循环还可以做其他工作的吗?



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
[content]
1楼-- · 2019-07-21 03:28
 精彩回答 2  元偷偷看……
12345678
2楼-- · 2019-07-21 06:44
回复【2楼】[content]:
---------------------------------
我一直都这么认为,但我一个搞FPGA的朋友非得说中断不会打断主循环,搞的我还以为STM32有什么特备之处
因为STM32是作为主设备,而RF模块又不会主动发数据,如果用中断接收的话,怎么触发中断的呢
[content]
3楼-- · 2019-07-21 08:38
回复【3楼】12345678:
---------------------------------
 RF24L01有一个IRQ引脚,低电平有效。对这个引脚做相应配置,当接收到数据时,会触发中断,然后在中断中读数就可以
12345678
4楼-- · 2019-07-21 10:56
 精彩回答 2  元偷偷看……
a51374975
5楼-- · 2019-07-21 14:46
nrf24l01一般都是用查询方式,在if中查询IRQ引脚电平,如果为低,表示成功接收数据,随即进行读取。
当然,也可用任意一条外部中断线,接到IRQ,在终端服务函数中读取数据。
程序从main开始执行,当产生终端后,程序跳到终端服务函数执行,结束后返回main继续执行。main中的功能不受影响,但是会被随时打断,如果有不允许打断的语句,应在这段语句的前面关总中断,语句后面开总中断。
12345678
6楼-- · 2019-07-21 15:38
回复【6楼】a51374975:
---------------------------------
嗯嗯,这个明白,我先试试A7130,因为STM32是作为主设备,而RF-A7130模块又不会主动发数据,如果STM32用中断读取RF-A7130里面的数据的话,现在还不知道STM32怎么触发中断,从而进行接收RF-A7130里面的函数,困扰

一周热门 更多>