定时器(PWM输出)触发ADC采样(中断)——STM32CubeMX

这篇文章展示了如何在STM32平台中使用HAL库进行ADC的实时数据采集,包括初始化TIM和ADC模块、配置中断处理函数以及获取并显示VBusValue。
摘要由CSDN通过智能技术生成

 

 

 

uint8_t Adc2ConvEnd=0;

int main(void)
{
  uint16_t VBusValue;

  HAL_TIM_Base_Start(&htim1);
  HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_3);

  if(HAL_ADCEx_Calibration_Start(&hadc2) != HAL_OK )
  {
    Error_Handler();
  }
  HAL_ADC_Start_IT(&hadc2);

  while (1)
  {
      if(Adc2ConvEnd)
      {
          Adc2ConvEnd=0;
          VBusValue=HAL_ADC_GetValue(&hadc2);
          //定时器触发ADC采样的方式就不需要自己在此处再次加上HAL_ADC_Start_IT(&hadc2)来开启中断了
          printf("VBusValue:%d\r\n",VBusValue);
      }
  }
}


void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
{
    if(hadc==&hadc2)
    {
        Adc2ConvEnd=1;
    }
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值