完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
首先我们来看一下L9110S的驱动手册:
注意到IB接的是PB8,IA接的是PB9 根据第二个图片里面的真值表我们可以得到如下信息: PB8配置位复用推挽输出,PB9配置为通用推挽然后我给PB8配置PWM波,PB9给拉低,那么电机是不是就是正转反转同理停止两个端口同时拉低或者拉高就行了 接下里我们来配置一下PWM波,我们配置电机反转 PB9配置位复用推挽输出,PB8配置为通用推挽 然后我给PB9配置PWM波,PB8给拉低,那么电机是不是就是正转 看一下上图的定时器为TIM4,第4个管道。 void machinery_config(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//开时钟 /*PB9 复用推挽输出*/ GPIO_InitTypeDef GPIO_INIT; GPIO_INIT.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_INIT.GPIO_Speed = GPIO_Speed_50MHz; GPIO_INIT.GPIO_Pin = GPIO_Pin_9; GPIO_Init(GPIOB,&GPIO_INIT); GPIO_INIT.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_INIT.GPIO_Speed = GPIO_Speed_50MHz; GPIO_INIT.GPIO_Pin = GPIO_Pin_8; GPIO_Init(GPIOB,&GPIO_INIT); RCC->APB1ENR |=(0X01<<2);//开TIM4时钟 //定时器4通道 9 CH4 //时钟组成 TIM4->PSC = 72; TIM4->ARR = 1000; TIM4->CNT = 0; TIM4->CR1 &=~(0X01<<4);//计数方向--向上记数 //配置PWM波 有效电平 PWM模式 输出到响应引脚 TIM4->CCER &=~(0X01<<13);//高电平有效 TIM4->CCMR2 |=(0X06<<12);//PWM模式1 PWM输出模式 TIM4->CCER |=(0X01<<12);//OC4对应到PB9,将输出信号配置到指定管脚 TIM4->CCR4=0;//比较值 TIM4->CR1 |=(0X01<<0);//计数器使能 GPIO_ResetBits(GPIOB,GPIO_Pin_8);//拉低PB8 } 这样我们是不是只需要改变配置里面的比较值(TIM4->CCR4)就可以实现电机的速度控制了 我们在主函数里这样简单测试一下,每延时3s我让比较值增加200: TIM4->CCR4=200; systick_ms(3000); TIM4->CCR4=400; systick_ms(3000); TIM4->CCR4=600; systick_ms(3000); systick_ms(3000); TIM4->CCR4=800; systick_ms(3000); TIM4->CCR4=1000; systick_ms(3000); ok!这里就结束了,如果你需要别的控制,你只需要在满足你的控制条件后,更改比较值就可以实现电机的速度控制了。 |
|
|
|
只有小组成员才能发言,加入小组>>
2386 浏览 0 评论
8910 浏览 4 评论
36487 浏览 19 评论
4981 浏览 0 评论
24307 浏览 34 评论
1375浏览 2评论
1629浏览 1评论
2017浏览 1评论
1441浏览 0评论
387浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 09:03 , Processed in 1.254057 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号