工具/软件:
尊敬的工程师:
在移植 BiSS-C 通信项目时、我发现在 RXFIFO 中接收到 2 个数据时触发 SPI 中断。 这背后的考虑因素是什么? 我是否可以修改它以使用轮询方法实现? 此外、该例程是否修复了编码器的单圈数据分辨率?


此致、
林浩南
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:
尊敬的工程师:
在移植 BiSS-C 通信项目时、我发现在 RXFIFO 中接收到 2 个数据时触发 SPI 中断。 这背后的考虑因素是什么? 我是否可以修改它以使用轮询方法实现? 此外、该例程是否修复了编码器的单圈数据分辨率?


此致、
林浩南
您好 Luke、
此示例的 CLB 部分可以进行优化。 例如、结构定义太多、但不会影响功能。 我当前正在使用 BiSSc CLB 例程、发现一个问题:CLB 提供 SPICLK、但 SPIRXFIFO 忽略前 8 位、无法接收。
如果 SPI 在 SPICLK 的上升沿接收数据、则 I 接收的编码器返回数据应为 0x8777、0xBBB7、0x3BBF、0x3466。
然而、SPIFIFO[0]= 0x77BB、SPIFO[1]= 0xB73B、SPIFO[2]= 0xBF34、SPIFIFO[3]= 0x6600。





SPI 数据为 14 位、并根据例程执行配置: 
在程序中、我不使用中断、而是在接下来的 62.5us 周期内接收数据。 SPIPTE 由外部 GPIO 输入、并保持低电平。
LIN、
我无法评论为什么特别选择 在接收到 2 个数据帧时触发 SPI 中断、但应用代码中可能有某种东西可以帮助确定这一点。
您肯定可以对 SPI 使用轮询方法、只需手动轮询/清除所有相关的 FIFO 标志。 您可以忽略 RRDY 等常规 SPI 标志
操作的波形是否正确? 它是否在上升沿接收、CS 正常激活等?
如果您要发送 14 位数据、则需要 相应地向左移位、因为 SPI 始终一次发送/接收 16 位。 driverlib 中有一些相关函数、您可以将其作为起点。
此致、
Aishwarya