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.
我使用 MSP432E401从具有 I2C 接口的 TMP117温度传感器读取数据。 TMP117可在数据就绪时生成信号(警报)。 我需要将数据从 TMP117捕获到 MSP432的内部存储器中。 TMP117能够以比采样更快的速率生成数据、并且我不想让 CPU 加载来处理多个温度中断。 如果我可以配置 MSP432 UDMA、以便在每次发出警报时将数据从 TMP117传输到内部存储器、那将是很好的。 当外部 GPIO 被激活(边沿或电平敏感)时、是否可以设置 UDMA 来触发从 I2C 到内部存储器的传输而无需 CPU 干预? 如果是、您可以向我介绍一个演示此功能的 RTOS 示例吗?
谢谢、
Philip
嗨、Philip、
很抱歉、您是否能够找到在系统中启用此功能的方法? 我查看了 MSP432E4的现有 I2C 示例代码、该代码不基于 RTOS。 您可以在此处找到它:
还有一个相关的应用手册、其中讨论了 MSP432E401上的 I2C 主设备功能:
总之、如果我理解正确、E401好像是 I2C 主设备、但传感器从外部触发读取。 我认为这可能仅使用 DMA、但我认为您将面临一些挑战。 首先、您可以使用 GPIO 触发 DMA 传输、我认为您可以使用 GPIO 将数据从存储器传输到 I2C 并启动 TX。 您需要一个单独的 DMA 通道来处理 I2C 上接收到的数据。
通常此时、I2C 模块/DMA 会中断 CPU、让其知道数据已被读取、但听起来您不希望这样做。 您必须配置 DMA 以填充缓冲区、然后在填满后通知您。 我想您可以使用 DMA 的乒乓模式来实现这一点、但我不确定。
遗憾的是、这大约是我的 MSP432E4 DMA 专业技术的优势。
谢谢、
JD
JD、
感谢您的回复、我将查看这些文档。