資源簡介
通過stm32f103驅動sg90舵機從0°到180°來回轉動,每次轉動45°,可用于多種控制方面。

代碼片段和文件信息
#include?“timer.h“
#include?“led.h“
#include?“usart.h“
//通用定時器3中斷初始化
//這里時鐘選擇為APB1的2倍,而APB1為36M
//arr:自動重裝值。
//psc:時鐘預分頻數
//這里使用的是定時器3!
void?TIM3_Int_Init(u16?arru16?psc)
{
??TIM_TimebaseInitTypeDef??TIM_TimebaseStructure;
NVIC_InitTypeDef?NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3?ENABLE);?//時鐘使能
TIM_TimebaseStructure.TIM_Period?=?arr;?//設置在下一個更新事件裝入活動的自動重裝載寄存器周期的值 ?計數到5000為500ms
TIM_TimebaseStructure.TIM_Prescaler?=psc;?//設置用來作為TIMx時鐘頻率除數的預分頻值??10Khz的計數頻率??
TIM_TimebaseStructure.TIM_ClockDivision?=?0;?//設置時鐘分割:TDTS?=?Tck_tim
TIM_TimebaseStructure.TIM_CounterMode?=?TIM_CounterMode_Up;??//TIM向上計數模式
TIM_TimebaseInit(TIM3?&TIM_TimebaseStructure);?//根據TIM_TimebaseInitStruct中指定的參數初始化TIMx的時間基數單位
?
TIM_ITConfig(TIM3TIM_IT_UpdateENABLE?);?//使能指定的TIM3中斷允許更新中斷
NVIC_InitStructure.NVIC_IRQChannel?=?TIM3_IRQn;??//TIM3中斷
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority?=?0;??//先占優先級0級
NVIC_InitStructure.NVIC_IRQChannelSubPriority?=?3;??//從優先級3級
NVIC_InitStructure.NVIC_IRQChannelCmd?=?ENABLE;?//IRQ通道被使能
NVIC_Init(&NVIC_InitStructure);??//根據NVIC_InitStruct中指定的參數初始化外設NVIC寄存器
TIM_Cmd(TIM3?ENABLE);??//使能TIMx外設
?
}
//定時器3中斷服務程序
void?TIM3_IRQHandler(void)???//TIM3中斷
{
if?(TIM_GetITStatus(TIM3?TIM_IT_Update)?!=?RESET)?//檢查指定的TIM中斷發生與否:TIM?中斷源?
{
TIM_ClearITPendingBit(TIM3?TIM_IT_Update??);??//清除TIMx的中斷待處理位:TIM?中斷源?
}
}
//TIM3?PWM部分初始化?
//PWM輸出初始化
//arr:自動重裝值
//psc:時鐘預分頻數
void?TIM1_PWM_Init(u16?arru16?psc)
{??
GPIO_InitTypeDef?GPIO_InitStructure;
TIM_TimebaseInitTypeDef??TIM_TimebaseStructure;
TIM_OCInitTypeDef??TIM_OCInitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1?ENABLE);//?
? RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA??ENABLE);??//使能GPIO外設時鐘使能
?????????????????????????????????????????????????????????????????????
???//設置該引腳為復用輸出功能輸出TIM1?CH1的PWM脈沖波形
GPIO_InitStructure.GPIO_Pin?=?GPIO_Pin_8;?//TIM_CH1
GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_AF_PP;??//復用推挽輸出
GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;
GPIO_Init(GPIOA?&GPIO_InitStructure);
TIM_TimebaseStructure.TIM_Period?=?arr;?//設置在下一個更新事件裝入活動的自動重裝載寄存器周期的值 ?80K
TIM_TimebaseStructure.TIM_Prescaler?=psc;?//設置用來作為TIMx時鐘頻率除數的預分頻值??不分頻
TIM_TimebaseStructure.TIM_ClockDivision?=?0;?//設置時鐘分割:TDTS?=?Tck_tim
TIM_TimebaseStructure.TIM_CounterMode?=?TIM_CounterMode_Up;??//TIM向上計數模式
TIM_TimebaseInit(TIM1?&TIM_TimebaseStructure);?//根據TIM_TimebaseInitStruct中指定的參數初始化TIMx的時間基數單位
?
TIM_OCInitStructure.TIM_OCMode?=?TIM_OCMode_PWM2;?//選擇定時器模式:TIM脈沖寬度調制模式2
TIM_OCInitStructure.TIM_OutputState?=?TIM_OutputState_Enable;?//比較輸出使能
TIM_OCInitStructure.TIM_Pulse?=?0;?//設置待裝入捕獲比較寄存器的脈沖值
TIM_OCInitStructure.TIM_OCPolarity?=?TIM_OCPolarity_High;?//輸出極性:TIM輸出比較極性高
TIM_OC1Init(TIM1?&TIM_OCInitStructure);??//根據TIM_OCInitStruct中指定的參數初始化外設TIMx
??TIM_CtrlPWMOutputs(TIM1ENABLE); //MOE?主輸出使能
TIM_OC1PreloadConfig(TIM1?TIM_OCPreload_Enable);??//CH1預裝載使能
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2064??2020-12-10?14:27??TIMER\TIMER\app\timer.c
?????文件????????640??2020-12-10?14:27??TIMER\TIMER\app\timer.h
?????文件??????17273??2010-06-07?10:25??TIMER\TIMER\CORE\core_cm3.c
?????文件??????85714??2011-02-09?14:59??TIMER\TIMER\CORE\core_cm3.h
?????文件??????15503??2011-03-10?10:52??TIMER\TIMER\CORE\startup_stm32f10x_hd.s
?????文件???????7930??2020-12-04?15:51??TIMER\TIMER\Public\delay.c
?????文件???????1994??2020-12-04?15:48??TIMER\TIMER\Public\delay.h
?????文件?????????29??2016-04-26?15:45??TIMER\TIMER\Public\system.c
?????文件???????2077??2017-03-17?16:34??TIMER\TIMER\Public\system.h
?????文件???????1403??2017-03-17?16:43??TIMER\TIMER\Public\SysTick.c
?????文件????????160??2017-03-17?16:43??TIMER\TIMER\Public\SysTick.h
?????文件???????5089??2020-12-09?21:45??TIMER\TIMER\Public\usart.c
?????文件???????1283??2020-12-06?18:49??TIMER\TIMER\Public\usart.h
?????文件???????8982??2011-03-10?10:47??TIMER\TIMER\STM32F10x_FWLib\inc\misc.h
?????文件??????21690??2011-03-10?10:47??TIMER\TIMER\STM32F10x_FWLib\inc\stm32f10x_adc.h
?????文件???????7555??2011-03-10?10:47??TIMER\TIMER\STM32F10x_FWLib\inc\stm32f10x_bkp.h
?????文件??????27559??2011-03-10?10:47??TIMER\TIMER\STM32F10x_FWLib\inc\stm32f10x_can.h
?????文件???????6573??2011-03-10?10:47??TIMER\TIMER\STM32F10x_FWLib\inc\stm32f10x_cec.h
?????文件???????2162??2011-03-10?10:47??TIMER\TIMER\STM32F10x_FWLib\inc\stm32f10x_crc.h
?????文件??????15233??2011-03-10?10:47??TIMER\TIMER\STM32F10x_FWLib\inc\stm32f10x_dac.h
?????文件???????3818??2011-03-10?10:47??TIMER\TIMER\STM32F10x_FWLib\inc\stm32f10x_dbgmcu.h
?????文件??????20754??2011-03-10?10:47??TIMER\TIMER\STM32F10x_FWLib\inc\stm32f10x_dma.h
?????文件???????6824??2011-03-10?10:47??TIMER\TIMER\STM32F10x_FWLib\inc\stm32f10x_exti.h
?????文件??????25445??2011-03-10?10:47??TIMER\TIMER\STM32F10x_FWLib\inc\stm32f10x_flash.h
?????文件??????27016??2011-03-10?10:47??TIMER\TIMER\STM32F10x_FWLib\inc\stm32f10x_fsmc.h
?????文件??????20175??2011-03-10?10:47??TIMER\TIMER\STM32F10x_FWLib\inc\stm32f10x_gpio.h
?????文件??????30029??2011-03-10?10:47??TIMER\TIMER\STM32F10x_FWLib\inc\stm32f10x_i2c.h
?????文件???????3828??2011-03-10?10:47??TIMER\TIMER\STM32F10x_FWLib\inc\stm32f10x_iwdg.h
?????文件???????4383??2011-03-10?10:47??TIMER\TIMER\STM32F10x_FWLib\inc\stm32f10x_pwr.h
?????文件??????30452??2011-03-10?10:47??TIMER\TIMER\STM32F10x_FWLib\inc\stm32f10x_rcc.h
............此處省略192個文件信息
評論
共有 條評論