标题: stm32f103控制舵机程序 寄存器版本 [打印本页]

作者: 枫麟胤    时间: 2021-7-23 20:34
标题: stm32f103控制舵机程序 寄存器版本
#############主程序########################
include <timer.c>

int main(void)
{                                          
        u16 i;   
        Stm32_Clock_Init(9);//系统时钟设置
        uart_init(72,115200);//串口初始化115200
        delay_init(72);           //延时初始化
        LED_Init();                  //初始化与LED链接的硬件接口
          TIM3_PWM_Init(1999,719);        
           while(1)
        {
                for(i=1750;i<1951;i++){              //舵机从0度开始,0度为1750。
                        LED0_PWM_VAL=i;              //循环得到的i变量赋值到舵机上
                        delay_ms(10);
                }
                for(i=1951;i>1749;i--){               //舵机从180度开始,180度为1950。
                        LED0_PWM_VAL=i;            //循环得到的i变量赋值到舵机上
                        delay_ms(10);
                }  
        }
}

##################################头文件timer.c############################
void TIM3_PWM_Init(u16 arr,u16 psc)
{                                                         

        RCC->APB1ENR|=1<<1;         //TIM3时钟使能   
        RCC->APB2ENR|=1<<3;            //使能PORTB时钟        
        GPIOB->CRL&=0XFF0FFFFF;        //PB5输出
        GPIOB->CRL|=0X00B00000;        //复用功能输出                    
           
        RCC->APB2ENR|=1<<0;     //开启辅助时钟           
        AFIO->MAPR&=0XFFFFF3FF; //清除MAPR的【11:10】
        AFIO->MAPR|=1<<11;      //部分重映像,TIM3_CH2->PB5

        TIM3->ARR=arr;                        //设定计数器自动重装值
        TIM3->PSC=psc;                        //预分频赋值
        
        TIM3->CCMR1|=7<<12;          //CH2 PWM2模式                 
        TIM3->CCMR1|=1<<11;         //CH2预装载使能           
        TIM3->CCER|=1<<4;           //OC2 输出使能           
        TIM3->CR1=0x0080;           //ARPE使能
        TIM3->CR1|=0x01;            //使能定时器3                                                                                          
}

代码下载: 舵机 寄存器.7z (83.17 KB, 下载次数: 14)





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1