完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
今天还是想控制直流电机的正反转及转速,尝试了很多办法。首先先看一下用控制电平的方法改变正反转及转速的程序。
main.c如下: int main(void) { u16 pwmval; u8 dir=1; u8 key,m1,m2; delay_init(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 uart_init(115200); //串口初始化为115200 LED_Init(); //LED端口初始化 KEY_Init(); TIM3_PWM_Init(899,0); //不分频。PWM频率=72000000/900=80Khz pwmval = 0; m1 = 0; m2 = 1; while(1) { key = KEY_Scan(0); if(key == KEY1_PRES) { pwmval = 30; } if(key == WKUP_PRES) { pwmval = 300; m1 = ~m1; m2 = ~m2; } delay_ms(10); TIM_SetCompare2(TIM3,pwmval); TIM_SetCompare3(TIM3,pwmval); IN1 = m1; IN2 = m2; } 这个主函数很简单也没有发现语法或者程序的问题,但会出现:**c(95): error: at end of source: #67: expected a “}” site:blog.csdn.net。查了之后发现在整个程序的最后直接再加一个“}”就好了。**这个是利用按键KEY1进行加速,KEY_UP进行转动方向的改变。但是变速效果并不明显,可能是察觉不出来。对此可以改变 按键按下后pwmva的取值。 这个函数是利用两个pwm波来控制。通过pwm占空比来控制转速,利用变量的取反来控IO口的电平。如果要驱动两路直流电机直接定义相应的串口就可以了。在主函数中也可以直接加上“ IN1 = m1; IN2= m2; IN3 = m3; IN4 = m4;”就可以了。 在相应的pwm.c中对于两个通道Channel2和 Channel3的PWM波直接如下就可以: //初始化TIM3 Channel2 PWM模式 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //选择定时器模式:TIM脉冲宽度调制模式2 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高 TIM_OC2Init(TIM3, &TIM_OCInitStructure); //根据T指定的参数初始化外设TIM3 OC2 TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); //使能TIM3在CCR2上的预装载寄存器 //初始化TIM3 Channel3 PWM模式 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //选择定时器模式:TIM脉冲宽度调制模式2 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高 TIM_OC3Init(TIM3, &TIM_OCInitStructure); //根据T指定的参数初始化外设TIM3 OC3 TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable);使能TIM3在CCR3上的预装载寄存器 TIM_Cmd(TIM3, ENABLE); //使能TIM3 后来在尝试把昨天的直流电机缓慢变速与今天的正反转结合的时候,尝试着把缓慢变速的程序放入一个定义的函数里面然后在主函数中运用,结果发现不行。改变了相对于的串口等等,具体原因现在还不知道。。。明天继续尝试尝试。 |
|
|
|
只有小组成员才能发言,加入小组>>
2361 浏览 0 评论
8625 浏览 4 评论
36347 浏览 18 评论
4961 浏览 0 评论
24056 浏览 34 评论
1308浏览 2评论
1539浏览 1评论
1915浏览 1评论
1370浏览 0评论
1802浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-2 15:13 , Processed in 1.084366 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号