资源简介
通过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个文件信息
相关资源
- STM32F103C8T6硬件I2C2成功驱动ADS1115源代
- STM32F407ZGT6实现HAL库硬件I2C读写EEPROM功
- stm32做的红外遥控解码程序
- 《emwin实战指南(基于STM32-ISO开发板)
- Beginning STM32: Developing with FreeRTOS libo
- stm32f103c8t6_sch.Lib
- ALIENTEK战舰STM32F1 V3开发板原理图.rar
- STM32F103RC+ADC+DMA多通道采样LCD显示
- I2C读写AT24C02 基于STM32F103 cube116540
- 基于stm32f103ve的程序——跑马灯实验
- 基于STM32RCT6的步进电机驱动程序
- stm32f407上的两个can发送和接收例程
- STM32 led 时钟
- STM32 2.4G通信例程
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- stm32f030 IAP Demo(原创)
- STM32基于rt_thread操作系统的SDHC卡文件
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
评论
共有 条评论