scanli 发表于 2015-2-28 15:35:54

发现一个存在于stm32cube F1 V1.0.0.0的Bug!

工具:
       Stm32cubeMX 4.6.0F1 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,是不同的。



z00 发表于 2015-2-28 15:54:27

不错 支持一下

数码小叶 发表于 2015-2-28 16:14:46

没用过,学习学习

数码小叶 发表于 2015-2-28 16:15:50

没用过,学习学习

feel-376797 发表于 2015-2-28 16:16:40

谢谢分享

沐紫 发表于 2015-2-28 16:34:14

不错,大家验证下?

zfz0122 发表于 2015-2-28 16:43:11


谢谢分享

123tango 发表于 2015-2-28 19:17:35

谢谢分享

lkl0305 发表于 2015-2-28 20:37:23

也来看看!!

拼命三郎 发表于 2015-2-28 22:09:04

没有开启扫描模式
页: [1] 2
查看完整版本: 发现一个存在于stm32cube F1 V1.0.0.0的Bug!