"Thread: SysConfig"中讨论的其他器件
尊敬的所有人:
我当前正在尝试配置 MSPM0G3507、工作方式如下:
-使用 DMA 发送/接收的 UART (UART0)。
- PWM (TIMA1)处于中心对齐模式、并在每个 PWM 周期的中间触发 ADC0和 ADC1。
- ADC (ADC0/1)、用于转换多个通道(启用 FIFO 的序列模式)、并使用 DMA 将数据传输到全局变量 gAdc0Values 和 gAdc1Values 中。
- DMA 被配置为"重复块"、并且在 ADC0/1发出 DMADONE 中断时重新使能
我的测试应用程序当前执行以下任务:
1)使用自动生成的代码 fom sysconfig 来初始化外设(SYSCFG_DL_init())。
2) 2)为 ADC0和 ADC1配置 DMA
3) 3)为 UART0配置 DMA
4.a)在无限循环中发送"Hello\r\n"
4.b)发出 DMADONE 中断时、在相应中断服务例程中重新启用 ADC0、ADC1和 DMA。
问题1)"gAdc0Values "(resp."gAdc1Values" )中的 AD 值在主循环中不可用。
当我在 ADC0或 ADC1的 ISR 中设置断点时、数组 gAdc0Values/"gAdc1Values 包含有效的 AD 值。 但是、如果我在主线中设置断点、则整个数组都设置为0。 因此、数组似乎在某个时候过载、但我不知道原因。
问题2) ADC+DMA 似乎会在一段时间后阻止 UART/DMA。
主循环在无限循环中发送"Hello\r\n"、因此等待传输完成、然后再启动另一个循环。 发送945字节后、函数残桩等待 DMA 通道完成、但这永远不会发生。 该问题可以重现、并且始终在发送相同数量的字节数后发生。 禁用 ADC 后、不会出现此问题、因此它在某种程度上可能是相关的。
感谢任何帮助。
此致、
Thomas


