目前在用stm32f030的芯片做电机控制,电流采样采用adc+DMA的方式,需要在中断中切换ADC采样通道的配置(根据扇区选择采样U,V,W三相电流中的两相),但是发现每次在中断中重新配置通道后,下次进中断时通道并没有缓过来,只有当第二次进入中断后通道才会转换,请问这是什么原因?ADC通道选择更改后是立即生效还是有什么条件才能够生效?切换通道代码在中断中如下:
switch (CurSelection) {
case U_V_CUR_SEN:
ADC1->CHSELR = 0x01B0; // U, V
break;
case U_W_CUR_SEN:
ADC1->CHSELR = 0x01D0; // U, W
break;
case V_W_CUR_SEN:
ADC1->CHSELR = 0x01E0; // V, W
break;
default:
ADC1->CHSELR = 0x01B0; // U, V
break;
}
LastPWMSector = GetPWMSector();
gExcursionInfo.Iu = m_Iu;
gExcursionInfo.Iv = m_Iv;
gExcursionInfo.Iw = m_Iw;
一周热门 更多>