![]() |
1
1
您想在处理从机芯片选择的GPIO线路上使用中断。确保有足够的时间让从机处理该中断,并在时钟开始前加载输出数据寄存器。 一些SPI模块排除了GPIO的使用-您需要检查SPI模块是否具有处理芯片选择的功能,或者仅根据GPIO活动启用模块。 |
![]() |
2
1
通常,我在过去使用SPI所做的就是将2个字节从主服务器发送到从服务器,其间的延迟最小。主服务器发送:“x y”,其中“x”是它希望从从属服务器读取的变量,“y”实际上只是一个虚拟变量,用于记录从属服务器的响应。同时,从机在接收到“x”时得到一个中断,查找要放入其输出缓冲区的值,当它接收到“y”时,对其数据包的响应被时钟发送给主机。 |
![]() |
3
0
不管您的微控制器是什么,三个很可能是与接收SPI数据相关联的ISR,以及一个寄存器,在其中可以访问接收到的数据并将其复制到局部变量中。 |
![]() |
4
0
首先,您需要确认您的主设备和从设备具有SPI模式和数据大小等参数的公共值。SPI模式将决定SPI时钟线的空闲极性和数据采样边缘是第一还是第二。数据大小将决定它是8位还是16位,或者根据芯片的不同而有所不同。 现在,当主设备通过芯片/从设备选择从设备时,从设备变为激活状态,等待时钟改变其状态,一旦时钟改变状态,从设备根据SPI模式选择再次等待第一或第二边缘的时钟线。如果是第1边缘从设备采集Mosi线数据并放入其内部移位寄存器,如果从设备也必须传输数据,则必须将数据保存在所选时钟边缘之前的miso线上。 根据数据大小,此过程将重复8或16次。完成后,主设备和从设备可以生成中断到它们的CPU来收集数据(在微控制器的情况下)。 |