基于STM32直流电机PID调速(双相编码器)

1.什么是PID?

PID知识学习指南:

https://www.bilibili.com/video/BV1Ds411t7Hr

2.为什么要用PID来对电机进行控制?

https://www.zhihu.com/question/353181256/answer/883991821

3.PWM输出配置

通过以上两个链接的学习,我们知道了使用PID对电机速度进行控制,就是通过调节PWM方波的占空比来对电机的速度进行调节。接下来我们就介绍PWM输出是如何配置的。

void TIM8_PWM_Init(u32 arr,u32 psc)//运用TIM8输出PWM方波
{
   	

	GPIO_InitTypeDef GPIO_InitStructure;				//定义初始化GPIO口的结构体
	TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
	TIM_OCInitTypeDef  TIM_OCInitStructure;
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8,ENABLE);  	//TIM8时钟使能    
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE); 	//使能PORTC时钟
	
  	GPIO_PinAFConfig(GPIOC,GPIO_PinSource8,GPIO_AF_TIM8); //GPIOF8复用为定时器
	
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;           //GPIOF8
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;        //复用功能
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;	//速度100MHz
	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;      //推挽复用输出
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;        //上拉
	GPIO_Init(GPIOC,&GPIO_InitStructure);              //初始化PF8
	
  
	TIM_TimeBaseStructure.TIM_Prescaler=psc;  //定时器分频												初始化定时器的时基单元
	TIM_TimeBaseStruct
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值