• 大小: 5.37MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-21
  • 语言: 其他
  • 标签: stm32  

资源简介

通过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个文件信息

评论

共有 条评论