资源简介
通过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个文件信息
相关资源
- 手环(一)---计步、速度等等.rar
- STM32F103 ADC测电压 代码
- Mini_oneNET.zip
- zw_qq_39340220-10661258-stm32机械手臂小车
- 基于STM32的室内温度控制系统.doc
- stm32f103测量pm2.5源码
- 基于stm32的闹钟rtc
- 轩微科技STM32编程器控制平台.rar
- MQ7浓度采集程序
- zw_OLED-STM32F4-IIC.zip
- 基于STM32篮球比赛计分
- STM32F103C8T6与MQTT通信的源码
- USART基于hal库stm32f407串口通讯.rar
- stm32之传感器DHT11.zip
- STM32F4基于HAL库的LCD显示实验
- STM32硬件IIC主机例程以读写EEPROM为例
- MLX90614红外测温仪软件设计.rar
- STM32F103C8T6读取DS18B20串口显示程序.r
- MLX90614(GY906)____STM32F103ZET6
- Bad Apple.zip
- stm32f4+ov5640颜色识别.zip
- stm32 modbus 协议程序
- 基于stm32的六轴传感器驱动工程文件
- STM32L152数据手册_中文.pdf
- 闹钟唤醒实验
- 基于STM32的气象站预报系统设计源码
- STM32F767原理图+PCB给力啊!
- TCS3200-TEST.rar
-
STM32F103C8T6_AES-128-CTR_ba
se64密文解密 - stm32f042复用can通信
评论
共有 条评论