文档介绍:STM32F103C8T鼓心板+L298N直流电机调速PWM调速
(一)功能说明
用L298N驱动一台直流减速电机,引脚IN1,IN2可用于PWM控制。仅用STM32的两个端口给出PWM
信号控制IN1,IN2即可实现正反转、加减速等Init(GPIOA,&GPIO_InitStructure);17=GPIO_Pin_13;//LED0-->
端口配置=GPIO_Mode_Out_PP;//推挽输出=GPIO_Speed_50MHz;//IO口速度为50MHzGPIO_Init(GPIOC,&GPIO_InitStructure);//根据设定参数初始化}23intmain(void){delay_init();//延时函数初始化NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置NVIC中断分组2:2位抢占优先级,2位响应优先级2829//每隔5s的周期,变换电机的转向。
30//定时中断,最小单位钟频率=72MHz/36KHz=2KHz31TIM3_Int_Init(9999,35999);32GPIO_Config();//LED,PWM端口初始化,配置PC13,PA2,PA3TIM2_PWM_Init(47999,2);//分频。最小单位钟频率=/(2+1)=24Mhz35while(1)(38}}1#include"”
3//通用定时器3中断初始化//这里时钟选择为APB1的2倍,而APB1为36M//arr:自动重装值。
//psc:时钟预分频数7//这里使用的是定时器3!
89#definePC13PCout(13)//PC1310voidTIM3_Int_Init(u16arr,u16psc){TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;NVIC_InitTypeDefNVIC_InitStructure;15RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);时钟使能//RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//GPIO_PinRemapConfig(GPIO_FullRemap_TIM3,ENABLE);19=arr;//设置在下一个更新事件装入活动的自动重装载寄存器周期的值计数到5000为500ms=psc;//设置用来作为TIMx时钟频率除数的预分频值10Khz的计数频率=TIM_CKD_DIV1;//设置时钟分割:TDTS=Tck_tim=TIM_CounterMode_Up;//TIM向上计数模式TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);//根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位2526TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);//使能指定的TIM3中断,允许更新中断27=TIM3_IRQn;//TIM3中断=0;//先占优先级0级=3;//从优先级3级=ENABLE;//IRQ通道被使能NVIC_Init(&NVIC_InitStructure);//根据NVI