zoukankan      html  css  js  c++  java
  • STM32F103RCt6 与 MG996R

    发一张我自己的舵机

    老习惯,直接放代码,然后说说遇到的问#include"PWM.h"

    #include"stm32f10x.h"
    #include"sys.h"
    
    
    void PWM_Init(u16 arr,u16 psc)
    {
        
        GPIO_InitTypeDef GPIO_InitStruct;
        TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
        TIM_OCInitTypeDef TIM_OCInitStruct;
        
        
    //使能A组和TIM1的时钟
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
        
    //c初始化IO口为复用推挽输出
        GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
        GPIO_InitStruct.GPIO_Pin=GPIO_Pin_8;
        GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Init(GPIOA,&GPIO_InitStruct);
    
        
    //初始化定时器
        TIM_TimeBaseInitStruct.TIM_ClockDivision=0;
        TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up; ;
        TIM_TimeBaseInitStruct.TIM_Period=arr;
        TIM_TimeBaseInitStruct.TIM_Prescaler=psc;
        TIM_TimeBaseInit(TIM1,&TIM_TimeBaseInitStruct);
        
        
        //初始化外设TIM1 
        TIM_OCInitStruct.TIM_OCMode=TIM_OCMode_PWM2;
        TIM_OCInitStruct.TIM_OutputState=TIM_OutputState_Enable;
        TIM_OCInitStruct.TIM_Pulse=0;
        TIM_OCInitStruct.TIM_OCPolarity=TIM_OCPolarity_High;
        TIM_OC1Init(TIM1,&TIM_OCInitStruct);
        
        //主输出使能
        TIM_CtrlPWMOutputs(TIM1,ENABLE);
        
        //CH1预装载使能
        TIM_OC1PreloadConfig(TIM1,TIM_OCPreload_Enable);
        
        //使能TIM在ARR上的预装载寄存器
        TIM_ARRPreloadConfig(TIM1,ENABLE);
        
        //使能TIM1
        TIM_Cmd(TIM1,ENABLE);
        
    }
    
    
    
    int main()
    {
        u16 LPV=0;
        u8 K=1;
        delay_init();
        LED_Init();
        PWM_Init(199,7199);
        
        while(1)
        {
            TIM_SetCompare1(TIM1,175);
                delay_ms(5);
            TIM_SetCompare1(TIM1,175);
            delay_ms(2000);
            TIM_SetCompare1(TIM1,185);
            delay_ms(5);
            TIM_SetCompare1(TIM1,190);
            delay_ms(3000);
            TIM_SetCompare1(TIM1,195);
            delay_ms(5);
            delay_ms(3000);
            TIM_SetCompare1(TIM1,190);
            delay_ms(5);
            TIM_SetCompare1(TIM1,185);
            delay_ms(5);
            delay_ms(1000);
            delay_ms(1000);
            delay_ms(1000);
                TIM_SetCompare1(TIM1,170);
                delay_ms(5);
        }
    return 0;    
    }

    第一个问题:PWM有PWM1和PWM2的区别,你还记得么,
    第二个问题:写好程序舵机抖动抖动,有两个原因,电源不稳定,或者是转动的角度过大,
    第三个问题:接线和电源的电压问题,

  • 相关阅读:
    CCF CSP 题解
    CCF CSP 2019032 二十四点
    CCF CSP 2018121 小明上学
    CCF CSP 2019092 小明种苹果(续)
    CCF CSP 2019091 小明种苹果
    CCF CSP 2019121 报数
    CCF CSP 2019031 小中大
    CCF CSP 2020061 线性分类器
    CCF CSP 2020062 稀疏向量
    利用国家气象局的webservice查询天气预报(转载)
  • 原文地址:https://www.cnblogs.com/Loving-Q/p/12734531.html
Copyright © 2011-2022 走看看