說實話就現(xiàn)在的市場應用中stm32已經(jīng)占到了絕對住到的地位,51已經(jīng)成為過去式糠馆,32的功能更加強大疾呻,雖然相應的難度有所增加除嘹,但是依然阻止不了大家學習32的腳步,不說大話了這些大家都懂要不然也不會學習stm32的人那么多!!!
進入我們今天的主題岸蜗,今天給大家介紹的是stm32中一個很小但是比較實用的stm32直流電機驅(qū)動與測速尉咕,話不多說先給大家上一段直流電機控制的代碼。
void pwm_ARRPreloadConfig(void)
{
PrescalerValue = (uint16_t) (SystemCoreClock /TIM2_rate) - 1;
//設定的是定時器的頻率璃岳,要設定pwm的頻率為50hz要乘以對
//應的arr值
TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue; //TIM_Prescaler
設置了用來作為TIMx時鐘頻率除數(shù)的預分頻值
TIM_TimeBaseStructure.TIM_Period = PWM_ARR;
//設置了在下一個更新事件裝入活動的自動重裝載寄存器周期的值
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上計數(shù)模式
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已經(jīng)調(diào)好可以用 PB0
TIM_OC4PreloadConfig(TIM2, TIM_OCPreload_Enable); //pwm4已經(jīng)調(diào)好可以用 PB1
TIM_ARRPreloadConfig(TIM2, ENABLE);
TIM_Cmd(TIM2, ENABLE);
}
這段代碼是關于PWM來控制電機的年缎,相信有很多朋友可以直接拿去用,如果對這一段代碼有什么地方不懂可以參照針對stm32直流電機控制與測速的專門錄的視頻
? ? ? ?http://www.makeru.com.cn/live/1392_1218.html?s=45051
可能有些朋友會說你就是為了讓大家看這個視頻铃慷,對沒錯
我不否認单芜,為什么呢?因為完全靠寫我是很難表達清楚其中的一些細節(jié),對于會的人來說細節(jié)不重要完全不用看就會犁柜,正所謂難者不會會這不難洲鸠,對于不會的朋友某一個點不清楚那就拜拜了,沒戲馋缅。
只適合初級新手朋友老油條對這種方式不喜勿噴扒腕。