主题中讨论的其他器件:HALCOGEN
您好!
我在观察 SPI 信号后进行了观察;如果在从模式下使用 SPI 并且您禁用了它、则"假" PEND 位会设置为 DMA。 您能确认吗? 在参考手册中找不到有关此类行为的任何备注...
尝试这样做很琐碎、只需将 DMA 配置为对 SPI 请求感兴趣(未显示该部件)
在从模式下:
//配置 DMA 以侦听来自 SPI 的请求
ptSpi->GCR1=0U;//禁用&受控模式
ptSpi->INT0 = 0U;//删除 HALCoGen 设置的内容
ptSpi->INT0 |= SPI_INT0_DMAREQEN; //启用 DMA
ptSpi->GCR1 |= SPI_GCR1_EN;//启用 SPI ->这将为 TX 创建 PEND (应如此)
ptSpi->GCR1 &=(UINT32)~SPI_GCR1_EN;//关闭 SPI ->这会为 RX 通道创建挂起!!!
在主模式下、它可以正常工作:
//配置 DMA 以侦听来自 SPI 的请求
ptSpi->GCR1=0U;//禁用&受控模式
ptSpi->GCR1 |= SPI_GCR1_MASTER;//启用主模式
ptSpi->INT0 = 0U;//删除 HALCoGen 设置的内容
ptSpi->INT0 |= SPI_INT0_DMAREQEN; //启用 DMA
ptSpi->GCR1 |= SPI_GCR1_EN;//启用 SPI ->这将为 TX 创建 PEND (应如此)
ptSpi->GCR1 &=(UINT32)~SPI_GCR1_EN;//关闭 SPI -> RX 无挂起
在从模式下、如果在禁用之前移除 DMAREQEN、则不会创建 RX 挂起
...
ptSpi->INT0 &&~SPI_INT0_DMAREQEN; //删除 DMA
ptSpi->GCR1 &=(UINT32)~SPI_GCR1_EN;//关闭 SPI -> RX 无挂起