基于stm32F103ZET6的舵机控制(寄存器)

#############主程序########################
include <PWM.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);
                }  
        }
}

##################################头文件PWM.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                                                                                           
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枫麟胤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值