ST电机库 MKSDK 加入其它规则通道ADC,添加电流采样

ST电机库没有带母线电流采样,所以这里提供一种方法添加,如果在生成代码前,那么直接在cubu里加个ADC就好,如果在生成代码后不想改了就用我这种方法。

#include "power_stage_parameters.h"
#include "stm32g4xx_hal.h"
#include "MC_type.h"
#include "regular_conversion_manager.h"
#include "r_divider_bus_voltage_sensor.h"
#include "bus_voltage_sensor.h"
#include "parameters_conversion.h"

RDivider_Handle_t *BUS_Curr;
uint16_t RealBusCurrSensorFilterBufferM1[6];
RDivider_Handle_t BUS_CurrParamsM1 =
{
  ._Super                =
  {
    .SensorType          = REAL_SENSOR,
    .ConversionFactor    =(uint16_t)3.3,//(uint16_t)(ADC_REFERENCE_VOLTAGE / VBUS_PARTITIONING_FACTOR),
  },

  .VbusRegConv =
  {
    .regADC = ADC2,               //改成你自己的通道
    .channel =MC_ADC_CHANNEL_17,
    .samplingTime = LL_ADC_SAMPLING_CYCLE(47),
  },
  .LowPassFilterBW       = 6, //M1_VBUS_SW_FILTER_BW_FACTOR,
  .OverVoltageThreshold  = 65535,//OVERVOLTAGE_THRESHOLD_d,
  .UnderVoltageThreshold =  0,//UNDERVOLTAGE_THRESHOLD_d,
  .aBuffer = RealBusCurrSensorFilterBufferM1,
};


void RVBS_CalcAvBusCurr( RDivider_Handle_t * pHandle )
{
  uint32_t wtemp;
  uint16_t hAux;
  uint8_t i;

  hAux = RCM_ExecRegularConv(pHandle->convHandle);

  if ( hAux != 0xFFFF )
  {
    pHandle->aBuffer[pHandle->index] = hAux;
    wtemp = 0;
    for ( i = 0; i < pHandle->LowPassFilterBW; i++ )
    {
      wtemp += pHandle->aBuffer[i];
    }
    wtemp /= pHandle->LowPassFilterBW;
    pHandle->_Super.AvBusVoltage_d = ( uint16_t )wtemp;
    pHandle->_Super.LatestConv = hAux;

    if ( pHandle->index < pHandle->LowPassFilterBW - 1 )
    {
      pHandle->index++;
    }
    else
    {
      pHandle->index = 0;
    }
  }
}

然后初始化一下,在循环里调用RVBS_CalcAvBusCurr就好

	BUS_Curr = &BUS_CurrParamsM1;  //初始化
  RVBS_Init(BUS_Curr);

当然ADC初始化里和gpio初始化里加入你自己的引脚

在这里插入图片描述
然后就读到原始数据了,做个处理就好

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值