【stm32】用TIM1产生6路ADC,用CCR4触发ADC1的注入通道采样

本文详细介绍了如何在STM32中使用TIM1生成6路ADC采样,并利用CCR4中断触发ADC1的注入通道进行相电流检测。通过设置TIM1和ADC1的参数,实现PWM、中断和DMA功能的配合,确保在PWM周期内适时进行过零检测和限流控制。

      这几天一直在使用STM32来写sensorless BLDC的驱动框架,那么必须会用到TIM1的CCR1/CCR2/CCR3产生的六路互补PWM,以及用CCR4来产生一个中断,用来在PWM-ON的时候产生中断进行过零检测,以及相电流的检测等。

      这几天一直在测试PWM,CCR4的中断,ADC1的采样触发+DMA等功能,现在也了解的差不多了,先记录下来,先看下我的一些设置,TIM1设置:

 1   /* Time Base configuration ,init time1 freq*/
 2     TIM_TimeBaseStructure.TIM_Period = Period;
 3     TIM_TimeBaseStructure.TIM_Prescaler = 0;
 4     TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
 5     TIM_TimeBaseStructure.TIM_ClockDivision = 0;
 6     TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
 7     TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
 8     
 9     /* Automatic Output enable, Break, dead time and lock configuration*/
10     TIM_BDTRInitStructure.TIM_OSSRState = TIM_OSSRState_Enable;
11     TIM_BDTRInitStructure.TIM_OSSIState = TIM_OSSIState_Enable;
12     TIM_BDTRInitStructure.TIM_LOCKLevel = TIM_LOCKLevel_OFF;
13     TIM_BDTRInitStructure.TIM_DeadTime = 0;
14     TIM_BDTRInitStructure.TIM_Break =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值