HK32F030MF4P6的多通道ADC例子是错的?

[复制链接]
 楼主| miltonlai 发表于 2022-9-11 17:41 | 显示全部楼层 |阅读模式
14 ADC——多通道(间断模式)
这里面的代码貌似不对

  1.   // 配置ADC通道转换时间
  2.   /* ADC1 regular channels configuration */
  3.   ADC_ChannelConfig(ADCx, ADC_CHANNEL1 , ADC_SampleTime_239_5Cycles);
  4.   ADC_ChannelConfig(ADCx, ADC_CHANNEL3 , ADC_SampleTime_239_5Cycles);
  5.   ADC_ChannelConfig(ADCx, ADC_CHANNEL4 , ADC_SampleTime_239_5Cycles);
  6.   
如果按这样写, 只有最后一句是生效的, 因为 ADC_ChannelConfig 这个方法里面是这样的
  1. void ADC_ChannelConfig(ADC_TypeDef* ADCx, uint32_t ADC_Channel, uint32_t ADC_SampleTime)
  2. {
  3.   uint32_t tmpreg = 0;

  4.   /* Check the parameters */
  5.   assert_param(IS_ADC_ALL_PERIPH(ADCx));
  6.   assert_param(IS_ADC_CHANNEL(ADC_Channel));
  7.   assert_param(IS_ADC_SAMPLE_TIME(ADC_SampleTime));

  8.   /* Configure the ADC Channel */
  9.   ADCx->CHSELR = (uint32_t)ADC_Channel;

  10.   /* Clear the Sampling time Selection bits */
  11.   tmpreg &= ~ADC_SMPR1_SMPR;

  12.   /* Set the ADC Sampling Time register */
  13.   tmpreg |= (uint32_t)ADC_SampleTime;

  14.   /* Configure the ADC Sample time register */
  15.   ADCx->SMPR = tmpreg ;
  16. }


这一句
  1. ADCx->CHSELR = (uint32_t)ADC_Channel;
直接就把前两句的设置覆盖了.

谁有正确能用的, 基于中断的多通道连续采集的例子?

ifxz0123 发表于 2022-9-16 18:06 | 显示全部楼层
把那三行改成下面这样的一行: 20220916180439.png

谢谢反馈,我会修改并更新一下例程代码!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

19

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

7

主题

19

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部