ST意法半导体
直播中

王鑫

8年用户 1271经验值
私信 关注
[问答]

如果将ADC通道和DMA定时扫描放置在一个数组中会怎样?

我在循环模式下使用四个 ADC 通道和 DMA 的定时扫描将它们放置在一个数组中可以吗

回帖(1)

杨欢

2023-1-4 10:51:55
DMA 自动交错 ADC 值。
它将填充(作为循环缓冲区,如果以这种方式配置)您作为参数传递的数组,无论长度如何,直到您停止它。


  • uint32_t ADCReadings[1024];

  • //DMA will take hadc1 readings(interleaving channels) and store them inside ADCReadings array, the circular buffer created has legth 1024

  • HAL_ADC_Start_DMA(&hadc1, (uint32_t*) ADCReadings, 1024);

DMA 将按如下方式填充 ADCReadings:(如果来自 adc 的 4 个通道被激活)


  • ADCReadings[0]= 来自第一个通道的值
  • ADCReadings[1]= 来自第二个通道的值
  • ADCReadings[2]= 来自第三通道的值
  • ADCReadings[3]= 第 4 个通道的值
  • ADCReadings[4]= 来自第一个通道的值
  • ADCReadings[5]= 来自第二个通道的值
  • ADCReadings[6]= 来自第三通道的值
  • ADCReadings[7]= 第 4 个通道的值

........................
1024.ADCReadings[1023]= 第 4 个通道的值
举报

更多回帖

发帖
×
20
完善资料,
赚取积分