嵌入式系统课设:基于PWM的直流电机调速课程设计

  • Post author:
  • Post category:其他


设计任务:以STM32微控制器为核心,设计一个直流电机调速装置。

利用STM32微控制器的PWM功能,设计一个直流电机闭环调速电路。整体装置采用电池供电,需进行装置各部分供电电路设计,测速方案设计,具有合理的人机控制界面。

首先通过调用定时器 HAL 库函数 HAL_TIM_PWM_Init 初始化 TIM3 并设置 TIM3 的 ARR 和 PSC 等参数,其次通过调用函数 HAL_TIM_PWM_ConfigChannel 设置 TIM3_CH4 的 PWM 模式以及比较值等参数,最后通过调用函数 HAL_TIM_PWM_Start来使能 TIM3 以及使能 PWM 通道TIM3_CH4输出。

主函数如下:

int main(void)

{

u8 key;

u16 led0pwmval=0;

HAL_Init();                     //初始化HAL库

Stm32_Clock_Init(360,25,2,8);   //设置时钟,180Mhz

delay_init(180);                //初始化延时函数

uart_init(115200);              //初始化USART

LED_Init();                     //初始化LED

TIM3_PWM_Init(500-1,90-1);      //90M/90=1M的计数频率,自动重装载为500,那么PWM频率为1M/500=2kHZ

KEY_Init();                     //初始化按键

while(1)

{

key=KEY_Scan(0);

if(key==KEY0_PRES)             //按键0按下增大占空比

{

led0pwmval+=50; //dir==1 led0pwmval递增

{   led0pwmval=300;}

TIM_SetTIM3Compare4(led0pwmval);

}

if(key==KEY1_PRES)           //按键1按下减小占空比

{

led0pwmval-=50;                     //if(led0pwmval==0)//dir=1; //led0pwmval递减到0后,方向改为递增

TIM_SetTIM3Compare4(led0pwmval); //修改比较值,修改占空比

}

}

}



版权声明:本文为m0_52941127原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。