自学内容网 自学内容网

(蓝桥杯)STM32G431RBT6(TIM4-PWM)

一、基础配置

         这个auto-reload preload是自动重装载值,因为我们想让他每改变一个占空比,至少出现一次周期

         Counter Period(Autoreload Regisiter)这个设值为10000,那么就相当于它的周期是10000

        脉冲宽度可以设置为占周期的一半,那么现在的输出就是50%的占空比

        别忘了打开定时器3的中断

 

二、代码

(1)打开通道

         打开TIM3的PWM的通道

        要注意液晶屏和LED灯是有冲突的

(2)把弱函数改成强函数

      在mian函数中调用此函数

(3)如何改变脉冲宽度(占空比)

 

 3.1 替代OC_Config->Pulse

 

 

3.2 替代TIMx

 

         因为htim是结构体变量不是指针,所以不用箭头,把箭头变成点。Instance是指针,所以可以用箭头

 

 (4)注意

        一定不要让LCD影响到LED端口(LCD的初始化及其执行的函数都要屏蔽掉)

       PWM可以用于控制电机的转动,调速

(5)代码展示

          函数都是写在main 函数和int 函数之外的 

 

/* USER CODE BEGIN 0 */
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
{
static uint16_t temp_pluse=5000;//(调节PWM的占空比)

static uint8_t cnt_dir=0;//计数方向的标志位

if(cnt_dir ==0)
{
   temp_pluse+=5;
if(temp_pluse>10000)
{
  cnt_dir=1; 
  temp_pluse=9999;//(不能加数超过一万)
}
}
if(cnt_dir==1)
{
temp_pluse-=5;
if(temp_pluse<5000)
{
cnt_dir=0;
}

}

htim3.Instance->CCR3 = temp_pluse;
}

/* USER CODE END 0 */


原文地址:https://blog.csdn.net/2301_81764359/article/details/142349969

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!