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

设计任务:以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); //修改比较值,修改占空比

}

   }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值