STM32U5 系列 ADC4 采样设置

STM32U5 系列 中 ADC4 有个特殊的属性,当配置成SCAN模式时,分为以下两种情况:

1、Fully-configurable sequencer

这种模式就是常用的模式,可以随意配置ADC通道,针对不同的通道可以配置成不同的采样时间,同时随意调整采样的顺序,简单那来说就是如下两个参数
    sConfig.SamplingTime = ADC1_SAMPLE_TIME;   /* 采样时间 */
    sConfig.Rank         = ADC_REGULAR_RANK_1; /* 采样顺序 */
    sConfig.SingleDiff   = ADC_SINGLE_ENDED;
    sConfig.OffsetNumber = ADC_OFFSET_NONE;
    sConfig.Offset       = 0;
    HAL_ADC_ConfigChannel(ADCCfg[ADC1_CFG].ADCHandler, &sConfig);

如下ADC的采样通道,分别为IN1-IN11, 我们可以通过 参数 ADC_REGULAR_RANK_1,设置首先采样的通道。

但是这个配置在CUBEMX 不适用于所有的通道,如下所示,灰色的通道就不能使用

2、Sequencer not fully configurable:

这种模式下上述灰色的通道就能正常使用了
在此种配置下,每个通道不能自由配置,所以称之为 not fully configurable,体现在如下两点

1、采样顺序不能改变

那么在此情况,采样的顺序是由ADC本身的物理通道顺序决定的,
参考手册这么写的:
The order in which the channels are scanned is defined by the channel number
也就是ADC_IN1 是优先于 ADC_IN2采样(配置的前提下),具体的顺序如下

软件配置如下:

    ADCCfg[ADC4_CFG].ADCHandler->Init.SamplingTimeCommon1 = ADC4_SAMPLE_TIME1;
    ADCCfg[ADC4_CFG].ADCHandler->Init.SamplingTimeCommon2 = ADC4_SAMPLE_TIME2;
    HAL_ADC_Init(ADCCfg[ADC4_CFG].ADCHandler);


    sConfig.Rank         = ADC4_RANK_CHANNEL_NUMBER;
    sConfig.SamplingTime = ADC4_SAMPLINGTIME_COMMON_1;
    sConfig.SingleDiff   = ADC_SINGLE_ENDED;
    sConfig.OffsetNumber = ADC_OFFSET_NONE;
    sConfig.Offset       = 0;
    HAL_ADC_ConfigChannel(ADCCfg[ADC4_CFG].ADCHandler, &sConfig);

所有当使用这个模式采样的,有的时候得到的采样值并不是按照自己预期就要查看自己所选择那些通道在上图的顺序了。

2、采样时间有限选择

采样时间只有两个选择,也就是 ADC4_SAMPLINGTIME_COMMON_1 和 ADC4_SAMPLINGTIME_COMMON_2,

这两个采样时间又是由 SamplingTimeCommon1 和 SamplingTimeCommon2 配置的

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

写代码混口饭吃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值