stm32直流電機驅動與測速
說實話就現在的市場應用中stm32已經占到了絕對住到的地位,51已經成為過去式,32的功能更加強大,雖然相應的難度有所增加,但是依然阻止不了大家學習32的腳步,不說大話了這些大家都懂要不然也不會學習stm32的人那麼多!!!
進入我們今天的主題,今天給大家介紹的是stm32中一個很小但是比較實用的stm32直流電機驅動與測速,話不多說先給大家上一段直流電機控制的代碼。
void pwm_ARRPreloadConfig(void)
{
PrescalerValue = (uint16_t) (SystemCoreClock /TIM2_rate) - 1;
//設定的是定時器的頻率,要設定pwm的頻率為50hz要乘以對
//應的arr值
TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue; //TIM_Prescaler
設定了用來作為TIMx時鐘頻率除數的預分頻值
TIM_TimeBaseStructure.TIM_Period = PWM_ARR;
//設定了在下一個更新事件裝入活動的自動重裝載寄存器周期的值
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上計數模式
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OC3PreloadConfig(TIM2, TIM_OCPreload_Enable); //pwm3已經調好可以用 PB0
TIM_OC4PreloadConfig(TIM2, TIM_OCPreload_Enable); //pwm4已經調好可以用 PB1
TIM_ARRPreloadConfig(TIM2, ENABLE);
TIM_Cmd(TIM2, ENABLE);
}
123456789101112131415161718192021222324252627282930313233
這段代碼是關于PWM來控制電機的,相信有很多朋友可以直接拿去用,如果對這一段代碼有什麼地方不懂可以參照針對stm32直流電機控制與測速的專門錄的視訊
STM32電機驅動與測速:
http://www.makeru.com.cn/live/1392_1218.html?s=45051
可能有些朋友會說你就是為了讓大家看這個視訊,對沒錯
我不否認,為什麼呢?因為完全靠寫我是很難表達清楚其中的一些細節,對于會的人來說細節不重要完全不用看就會,正所謂難者不會會這不難,對于不會的朋友某一個點不清楚那就拜拜了,沒戲。
隻适合初級新手朋友老油條對這種方式不喜勿噴。
