请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TM4C1294KCPDT 正如我在前面的主题中提到的、我能够为 AD8900生成定期读取数据请求。 这就是它在示波器上的外观:

不需要、我希望通过 UDMA 读取此数据、4100个样本、每个样本3个字节、因此我为其编程了另一个 UDMA 通道:
初始化:
uDMAChannelAttributeDisable(UDMA_CHANNEL_SSI1RX, UDMA_ATTR_ALTSELECT | UDMA_ATTR_HIGH_PRIORITY |
UDMA_ATTR_REQMASK);
uDMAChannelControlSet(UDMA_CHANNEL_SSI1RX | UDMA_PRI_SELECT, UDMA_SIZE_8 | UDMA_SRC_INC_NONE | UDMA_DST_INC_8 | UDMA_ARB_1024);
uDMAChannelTransferSet(UDMA_CHANNEL_SSI1RX | UDMA_PRI_SELECT, UDMA_MODE_PINGPONG,
(void *)(SSI1_BASE + SSI_O_DR), (void *)ADCData1, 4100 * 3);
uDMAChannelControlSet(UDMA_CHANNEL_SSI1RX | UDMA_ALT_SELECT, UDMA_SIZE_8 | UDMA_SRC_INC_NONE | UDMA_DST_INC_8 | UDMA_ARB_1024);
uDMAChannelTransferSet(UDMA_CHANNEL_SSI1RX | UDMA_ALT_SELECT, UDMA_MODE_PINGPONG,
(void *)(SSI1_BASE + SSI_O_DR), (void *)ADCData2, 4100 * 3);
uDMAChannelEnable(UDMA_CHANNEL_SSI1RX);
ISR:
void SSIDoneInt()
{
SSIIntClear(SSI1_BASE, SSI_DMARX);
uDMAChannelTransferSet(UDMA_CHANNEL_SSI1RX | UDMA_PRI_SELECT, UDMA_MODE_PINGPONG,
(void *)(SSI1_BASE + SSI_O_DR), (void *)ADCData1, 4100 * 3);
uDMAChannelTransferSet(UDMA_CHANNEL_SSI1RX | UDMA_ALT_SELECT, UDMA_MODE_PINGPONG,
(void *)(SSI1_BASE + SSI_O_DR), (void *)ADCData2, 4100 * 3);
uDMAChannelEnable(UDMA_CHANNEL_SSI1RX);
}
问题是我定期在 ISR 中遇到断点,SSI 状态显示没有溢出情况,但 ADCData*数组包含所有零。
出什么问题了?