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.
大家好、是极客!
我使用的是 Launchpad MSPM0G3507。
我已实现不带 DMA 的 I2C、用于采用8位 EEPROM 器件的写入数据接口。 就表示工作正常。
现在、我尝试了使用 DMA 实现 I2C、不是将数据写入 i2c 从器件。 问题可能在于我认为的配置。
从数据表来看、通读 DMA 引擎后并不清楚。
我想与大家分享一些将 DMA 用于 I2C 的示例工程。
提前感谢您。
尊敬的 Ddnr:
我们目前没有使用 DMA 作为 I2C 的示例项目。
您是否使用过 SysConfig 工具来配置 DMA 传输? 您能否发布配置映像以及用于启动 DMA 的代码?
您好、Obrien:
感谢您的立即响应。
我们不使用 SysConfig。 我们使用 vscode 进行开发并从寄存器创建宏。
是的、我可以共享配置片段。
我的第一条建议是使用 SysConfig 在初始化 DMA 时所执行的相同步骤、即使您选择不在最终工程中使用 SysConfig。 这将保证初始化代码的完整和正确。
完成此操作后、您的代码更有可能快速工作、且调试将更容易。 如果您在此过程中遇到问题、敬请告知。
您好!
下面是使用 DMA 的 I2C (单次传输)的配置。 请告诉我是否按建议这样做。
尊敬的 Ddnr:
如果不知道您的宏映射到了什么、我就无法告诉您这是否正确。 根据宏名称、好像您遗漏了一些初始化设置。
一般过程应为:
初始化传输模式、目的和源地址增量、目的和源数据宽度、触发和触发类型。
然后、设置源地址、目标地址和传输大小、并启用通道。
这些是我们 SDK 中的示例为正确初始化 DMA 系统而执行的步骤。