前文已经配置了GPIO、编码器
本节讲解CubeMXADC规则和注入通道
本文adc注入通道采用定时器触发,因此在上文定时器配置的基础上进行
常规信号(温度等)使用带DMA的常规通道连续采样
注入采样由定时器触发,采集电机三相电流,并进入adc中断执行10khz的控制程序
ADC硬件接口如下
Motor1--IU--PA3--ADC1_IN3
Motor1--IV--PA4--ADC1_IN4
Motor1--IW--PA6--ADC1_IN6
Motor1--VBUS--PB0--ADC1_IN8
Motor1--IBUS--PB1--ADC1_IN9
Motor1--EMFU--PC0--ADC1_IN10
Motor1--EMFV--PC2--ADC1_IN12
Motor1--EMFW--PC3--ADC1_IN13
其中 设定 ADCIN3 ADCIN4 ADCIN6为定时器触发的注入通道,其他为adc规则通道,并由DMA进行处理。
先打开DMA配置
对ADC模式进行配置,采用扫描,连续,开启DMA
其中adc1 8 9 10 12 13一共5个通道配置为常规通道
3路电流adc1的3 4 6通道配置为注入通道。
为了测试ADC和TIM定时器的同步,加入一个GPIO口 (PF11)观测电平
打开ADC中断
生成代码
定义dma数组和注入通道数组
开启DMA,开启ADC注入通道和中断
编写ADC中断函数
可以看到ADC采样在定时器计数值为0的时刻,配置正确。