stm32 定时器输出PWM原理及工作原理+控制舵机
生活随笔
收集整理的這篇文章主要介紹了
stm32 定时器输出PWM原理及工作原理+控制舵机
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.PWM的工作原理
2.PWM的內部運作機制
3.PWM的模式
模塊一? 邊沿對齊模式
模塊二 中央對齊模式
4.自動加載的預加載寄存器
5.定時器輸出PWM結構體講解
6.定時器輸出PWM庫函數講解
?
定時器輸出PWM+控制舵機
按步驟去配置
motor.c #include "stm32f10x.h" // Device header#include "motor.h"void motor_config(void) {GPIO_InitTypeDef GPIO_MotorInit; //1.GPIO結構體TIM_TimeBaseInitTypeDef TIM_MotorInit; //2.配置通用定時器結構體TIM_OCInitTypeDef TIMPWN_MotorInit; //3.配置定時去輸出PWM結構體 +下邊的 TIM_OC2Init TIM_OC2PreloadConfig TIM_CmdRCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE); //4.1 打開GPIO時鐘RCC_APB1PeriphClockCmd( RCC_APB1Periph_TIM3, ENABLE); //4.2 打開定時器時鐘RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO, ENABLE); //復用使能時鐘GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3 , ENABLE ); //4.3 部分重映射時鐘GPIO_MotorInit.GPIO_Mode = GPIO_Mode_AF_PP;//復用推挽輸出GPIO_MotorInit.GPIO_Pin = GPIO_Pin_5;GPIO_MotorInit.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init( GPIOB, &GPIO_MotorInit );TIM_MotorInit.TIM_ClockDivision = TIM_CKD_DIV1; //設置時鐘分割TIM_MotorInit.TIM_CounterMode = TIM_CounterMode_Up; //計數模式 TIM向上計數TIM_MotorInit.TIM_Period = 200 - 1 ; //重裝載值 設置在下一個更新事件裝入活動的重裝載值TIM_MotorInit.TIM_Prescaler = 7200 - 1 ; //預分頻 TIMx時鐘頻率預分頻值TIM_TimeBaseInit( TIM3, &TIM_MotorInit);TIMPWN_MotorInit.TIM_OCIdleState = TIM_OCMode_PWM1; //選擇定時器模式1TIMPWN_MotorInit.TIM_OutputState = TIM_OutputState_Enable; //比較輸出使能TIMPWN_MotorInit.TIM_OCPolarity = TIM_OCPolarity_Low; //選擇有效輸出極性TIM_OC2Init( TIM3, &TIMPWN_MotorInit ); //選擇的是定時器3的通道2 所以用OC2TIM_OC2PreloadConfig( TIM3, TIM_OCPreload_Enable); //自動加載的預加載寄存器 使能TIM_Cmd( TIM3, ENABLE);} motor.h #include "stm32f10x.h" // Device headervoid motor_config(void); main.c #include "stm32f10x.h" // Device header #include "usart.h" #include "led.h" #include "tim.h" #include "motor.h"void delay(uint16_t time) {uint16_t i = 0;while(time--){i=12000;while(i--);} }int main(void) {uint16_t pwmval = 155; // 大約3/4 155/200motor_config();while(1){for(pwmval = 195;pwmval >= 175;pwmval-=5){TIM_SetCompare2( TIM3, pwmval); //5. 配置PWM比較值delay(500);//0.5s}} }?
總結
以上是生活随笔為你收集整理的stm32 定时器输出PWM原理及工作原理+控制舵机的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 宽带、专线等傻傻分不清楚——广域网协议
- 下一篇: 激光测距仪系统设计 c语言程序),激光测