#############主程序######################## 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 } |
基于stm32F103ZET6的舵机控制(寄存器)
最新推荐文章于 2023-12-16 19:56:16 发布