L298N驅(qū)動(dòng)步進(jìn)電機(jī)程序(帶PWM)_第1頁
L298N驅(qū)動(dòng)步進(jìn)電機(jī)程序(帶PWM)_第2頁
L298N驅(qū)動(dòng)步進(jìn)電機(jī)程序(帶PWM)_第3頁
L298N驅(qū)動(dòng)步進(jìn)電機(jī)程序(帶PWM)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上MCU選擇的是stm32F103RBT6,步進(jìn)電機(jī)選擇4相5線5V步進(jìn)電機(jī)馬達(dá)減速電機(jī)28BYJ-48-5V,驅(qū)動(dòng)選擇的是L298N模塊,模塊供電選擇12V供電(5V可能帶不起來),模塊的OUT1、OUT2接小型步進(jìn)電機(jī)的一個(gè)線圈,OUT3、 OUT4接另一個(gè)線圈,注意L298N模塊的GND和MCU的GND相連。*步進(jìn)電機(jī)頭文件Stepmotor.h#ifndef _MOTOR_H#define _MOTOR_Hvoid Motor_Init(void);void Motor_Go(void);#endif 源文件Stepmotor.c#include "s

2、tepmotor.h"#include "sys.h"void Motor_Init(void) GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); /使能PB端口時(shí)鐘 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_5| GPIO_Pin_7| GPIO_Pin_8;/PB3接IN1 PB5接IN2 PB7接IN3 PB8接IN4 GPIO_InitStructure.GPIO_Mo

3、de = GPIO_Mode_Out_PP; /推挽輸出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /IO口速度為50MHz GPIO_Init(GPIOB, &GPIO_InitStructure); /GPIO_ResetBits(GPIOB,GPIO_Pin_3|GPIO_Pin_5| GPIO_Pin_7| GPIO_Pin_8);*PWM調(diào)制頭文件mypwm.h#ifndef _TIMER_H#define _TIMER_H#include "sys.h"void MYTIMER3_Init(u16

4、 arr,u16 psc);void TIM3_PWM_Init(u16 arr,u16 psc);#endif源文件mypwm.c#include " mypwm.h#include "stm32f10x.h"void TIM3_PWM_Init(u16 arr,u16 psc)TIM_OCInitTypeDef TIM_OCInitTypestucture;TIM_TimeBaseInitTypeDef TIM_TimeBaseInitstucture; GPIO_InitTypeDef GPIO_InitStructure; RCC_APB1PeriphCl

5、ockCmd(RCC_APB1Periph_TIM3,ENABLE);/使能定時(shí)器時(shí)鐘 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE); /使能PC端口,復(fù)用時(shí)鐘 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7; /PC6接ENA PC7接ENB GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; /推挽復(fù)用輸出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_

6、50MHz; /IO口速度為50MHz GPIO_Init(GPIOC, &GPIO_InitStructure); /GPIO_PinRemapConfig(GPIO_FullRemap_TIM3,ENABLE);/TIM_TimeBaseInitstucture.TIM_Period=arr;/自動(dòng)裝載值TIM_TimeBaseInitstucture.TIM_Prescaler=psc;/預(yù)分頻值TIM_TimeBaseInitstucture.TIM_CounterMode=TIM_CounterMode_Up;/計(jì)數(shù)模式向上TIM_TimeBaseInitstucture.T

7、IM_ClockDivision=0 ;/TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitstucture);TIM_OCInitTypestucture.TIM_OCMode=TIM_OCMode_PWM1 ;/模式1TIM_OCInitTypestucture.TIM_OCPolarity=TIM_OCPolarity_High;/高電平TIM_OCInitTypestucture.TIM_Pulse=599;/改變數(shù)值調(diào)節(jié)占空比TIM_OCInitTypestucture.TIM_OutputState=TIM_OutputState_Enable;

8、/使能TIM_OC1Init(TIM3,&TIM_OCInitTypestucture);TIM_OC1PreloadConfig(TIM3,TIM_OCPreload_Enable);/使能預(yù)裝載TIM_OCInitTypestucture.TIM_OCMode=TIM_OCMode_PWM1 ;/模式1TIM_OCInitTypestucture.TIM_OCPolarity=TIM_OCPolarity_High;/高電平TIM_OCInitTypestucture.TIM_Pulse=599;TIM_OCInitTypestucture.TIM_OutputState=TIM_

9、OutputState_Enable;/使能TIM_OC2Init(TIM3,&TIM_OCInitTypestucture);TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);/使能預(yù)裝載TIM_Cmd(TIM3,ENABLE);/使能定時(shí)器*主函數(shù)#include "stepmotor.h"#include "stm32f10x.h"#include "delay.h"#include "timer.h"int main() delay_init(); Mo

10、tor_Init(); TIM3_PWM_Init(999,71);/ 72M/(71+1)(999+1)=1K hzwhile(1) /正轉(zhuǎn) GPIO_SetBits(GPIOB,GPIO_Pin_5| GPIO_Pin_7| GPIO_Pin_8);/0111GPIO_ResetBits(GPIOB,GPIO_Pin_3); delay_ms(4); GPIO_SetBits(GPIOB,GPIO_Pin_3| GPIO_Pin_7| GPIO_Pin_8);/1011GPIO_ResetBits(GPIOB,GPIO_Pin_5); delay_ms(4); GPIO_SetBits(GPIOB,GPIO_Pin_3| GPIO_Pin_5| GPIO_Pin_8);/1101G

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論