野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9207|回复: 5

pwm驱动直流电机的问题

[复制链接]
发表于 2017-8-19 16:55:37 | 显示全部楼层 |阅读模式
本帖最后由 qiyang1993 于 2017-8-19 17:12 编辑
  1. #include "stm32f4xx_it.h"
  2. #include "bsp_exti.h"
  3. #include "./tim/bsp_general_tim.h"
  4. #include "bsp_led.h"

  5. uint16_t M = 5000;//通过改变M值,改变转速
  6. void EXTI0_IRQHandler(void)
  7. {
  8.   //确保是否产生了EXTI Line中断
  9. if(EXTI_GetITStatus(KEY1_INT_EXTI_LINE) != RESET)
  10.         {
  11.                                 
  12.     M = M + 1000;if(M==9000) M = 9000;
  13.                 LED1_TOGGLE;
  14.     //清除中断标志位
  15.                 EXTI_ClearITPendingBit(KEY1_INT_EXTI_LINE);     
  16.         }  
  17. }
  18. void EXTI15_10_IRQHandler(void)
  19. {
  20.   //确保是否产生了EXTI Line中断
  21.         if(EXTI_GetITStatus(KEY2_INT_EXTI_LINE) != RESET)
  22.         {
  23.                 LED2_TOGGLE;
  24.                 M = M - 1000 ;if(M==0) M=0;
  25.     //清除中断标志位
  26.                 EXTI_ClearITPendingBit(KEY2_INT_EXTI_LINE);     
  27.         }  
  28. }[backcolor=rgb(238, 238, 238)]
复制代码



回复

使用道具 举报

 楼主| 发表于 2017-8-19 16:57:19 | 显示全部楼层
按下按键,会看到小灯能够正常翻转,为什么电机转速不变
回复 支持 反对

使用道具 举报

发表于 2017-8-19 17:40:03 | 显示全部楼层
qiyang1993 发表于 2017-8-19 16:57
按下按键,会看到小灯能够正常翻转,为什么电机转速不变

用示波器测一下输出的PWM信号有没有变
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-19 21:11:58 | 显示全部楼层
我加了 串口在里面,通过串口,确实,M的值是会变化的,但是电机速度一点变化没有,怎么回事?M的值即定时器pulse的值
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-15 16:28:48 | 显示全部楼层
已经完美解决了,通过改变脉冲宽度,写入到寄存器。所以,之前现象就是电机速度没变化,但是LED会跳转,中断是正常工作的。
回复 支持 反对

使用道具 举报

发表于 2017-9-19 10:00:25 | 显示全部楼层
楼主可以说一下是如何解决的吗?我的也是输出到引脚上通过电机模块接到电机上,电机匀速转。谢谢喽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-3 11:05 , Processed in 0.046806 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表