STM32F103C8+L298N_PWM直流电机调速(7页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《STM32F103C8+L298N_PWM直流电机调速(7页).doc》由会员分享,可在线阅读,更多相关《STM32F103C8+L298N_PWM直流电机调速(7页).doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-STM32F103C8+L298N_PWM直流电机调速-第 7 页STM32F103C8T6核心板+L298N直流电机调速PWM调速(一) 功能说明 用L298N驱动一台直流减速电机,引脚IN1,IN2可用于PWM控制。仅用STM32的两个端口给出PWM信号控制IN1,IN2即可实现正反转、加减速等动作。(二) 硬件说明:控制板:STM32F03C8T6最小系统;控制板说明型号:STM32F103C8T6内核:ARM 32位的CortexTM-M3 CPU调试方式:SWD尺寸:直流电机驱动板:L298N是SGS公司的产品,比较常见的是15脚MulTIwatt封装的L298N,内部同样包含4通
2、道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机。(三) 资源配置: STM32F03C8T6使用端口定义端口功能说明配置PA2连接L298N芯片的IN1 通用定时器的PWM功能, TIM2_CH3PA3连接L298N芯片的IN2通用定时器的PWM功能,TIM2_CH4PC13控制板带的LED指示灯,周期性的变化,每变化一次,电机的转运方向变化一次。由TIM3中断定时控制。通用定时器TIM3定时中断L298N端口定义 IN1IN2ENA电机状态PA20始终是1顺时针运转,调整PA2的频率,可高速。 0PA3始终是1逆时针运转,调整PA2的频率,可高速。00始终是1停止(四) 软件
3、实现 1:通用定时器TIM3的中断定时实现步骤 使能定时器时钟。RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); 初始化定时器,配置【ARR自动装载值,PSC预分频系数。】 TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); 开启定时器中断,配置NVIC。TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE); NVIC_Init(&NVIC_InitStructure); 使能定时器。TIM_Cmd(TIM3, ENABLE); /实际是配置 控制寄存器1 (TIM3_
4、CR1) 编写中断服务函数。TIMx IRQHandler();2:通用定时器TIM2的Channel1、Channel2的PWM实现步骤 使能定时器2和相关IO口时钟。使能定时器2时钟:RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);使能GPIOB时钟:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); 初始化IO口为复用功能输出。函数:GPIO_Init();GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; 初始化定时器:ARR,PS
5、C等:TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); 初始化输出比较参数:TIM_OC3Init(TIM2, &TIM_OCInitStructure); TIM_OC4Init(TIM2, &TIM_OCInitStructure); 使能预装载寄存器: TIM_OC2PreloadConfig(TIM2, TIM_OCPreload_Enable); 使能定时器。TIM_Cmd(); 不断改变比较值CCRx,达到不同的占空比效果:TIM_SetCompare3() ; TIM_SetCompare4() ; 使用Keil5 模拟软件的Logi
6、c Analyzer功能,PA2,PA3,PC13的波形图如下所示:(五) 附录:程序源码1 #include delay.h2 #include sys.h3 #include timer.h45 void GPIO_Config(void) /配置PA2, PA36 7 GPIO_InitTypeDef GPIO_InitStructure;89 /* GPIOA clock enable */10 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOC,ENABLE); /1112 /*GPIOA Configu
7、ration: TIM3 channel 1 and 2 as alternate functionpush-pull */13 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3;14 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; /复用推挽输出15 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;16 GPIO_Init(GPIOA, &GPIO_InitStructure);17端口配置19 GPIO_InitStructure.GP
8、IO_Mode = GPIO_Mode_Out_PP; /推挽输出20 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /IO口速度为50MHz21 GPIO_Init(GPIOC, &GPIO_InitStructure);/根据设定参数初始化22 2324 int main(void)25 26 delay_init(); /延时函数初始化27 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);/设置NVIC中断分组2:2位抢占优先级,2位响应优先级2829 /每隔5s的周期,变换电机的转向。3
9、0 /定时中断,最小单位钟频率=72MHz/36KHz=2KHz31 TIM3_Int_Init(9999,35999) ;3233 GPIO_Config(); /LED,PWM端口初始化,配置PC13,PA2,PA334 TIM2_PWM_Init(47999,2 ); /分频。最小单位钟频率=72000000/(2+1)=24Mhz3536 while(1)37 3839 40 1 #include timer.h23 /通用定时器3中断初始化4 /这里时钟选择为APB1的2倍,而APB1为36M5 /arr:自动重装值。6 /psc:时钟预分频数7 /这里使用的是定时器3!89 #de
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STM32F103C8 L298N_PWM 直流电机 调速
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内