工具: Stm32cubeMX 4.6.0 F1 V1.0.0 现象: 在配置规则多通道AD转换(DMA传输模式)时,正确的应该是不同的内存地址因该填入不同通道的采样结果,而错误现象是,不同的内存地址填入的是一个固定通道的多次采样的数据。 原因: 在STM32CubeMX F1 V1.0.0生成的代码中存在错误: /* ADC1 init function */ void MX_ADC1_Init(void) { ADC_ChannelConfTypeDef sConfig; /**Common config */ hadc1.Instance = ADC1; hadc1.Init.ScanConvMode = ENABLE; hadc1.Init.ContinuousConvMode = DISABLE; ....... 其中,hadc1.Init.ScanConvMode = ENABLE;中“ENABLE”是错误的。 解决方法: 将hadc1.Init.ScanConvMode = ENABLE;改为hadc1.Init.ScanConvMode = ADC_SCAN_ENABLE; 因为,宏ADC_SCAN_ENABLE 和ENABLE 的值分别为0x100和0x00,是不同的。 |
CUBEMX里默认的 是DISABLE
谢谢分享