void TIM1_PWM_Init(u16 arr,u16 psc)
{  
        GPIO_InitTypeDef GPIO_InitStructure;
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
        TIM_OCInitTypeDef  TIM_OCInitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);//定时器1时钟使能
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//GPIOB时钟使能

//GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
        GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_14 | GPIO_Pin_15;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//复用推挽输出
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOB, &GPIO_InitStructure);
 
        //初始化TIM3
        TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值
        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的时间基数单位
#if 1        //TIM1CHN通道发出PWM    
    //初始化TIM3 Channel2 PWM模式    
        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Disable;    //TIM_CH,这个注意选择,不然CHN通道发不出PWM !
        TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;    //TIM_CHN
        TIM_OCInitStructure.TIM_Pulse = 0;
        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
        TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_Low;//决定波形高低电平
        TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;        //跟死区有关,还没研究
        TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;

#else        //TM1CH通道输出PWM

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //选择定时器模式:TIM脉冲宽度调制模式2
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Disable; //比较输出使能
  TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
  TIM_OCInitStructure.TIM_Pulse = 0;
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高
#endif 
    TIM_OC2Init(TIM1, &TIM_OCInitStructure);  //根据T指定的参数初始化外设TIM3 OC2
    TIM_OC2PreloadConfig(TIM1, TIM_OCPreload_Enable);  //使能TIM3在CCR2上的预装载寄存器

TIM_OC3Init(TIM1, &TIM_OCInitStructure);  //根据T指定的参数初始化外设TIM3 OC2
    TIM_OC3PreloadConfig(TIM1, TIM_OCPreload_Enable);  //使能TIM3在CCR2上的预装载寄存器
 
   TIM_ARRPreloadConfig(TIM1, ENABLE); //使能TIMx在ARR上的预装载寄存器
           TIM_Cmd(TIM1, ENABLE);  //使能TIM3
  TIM_CtrlPWMOutputs(TIM1, ENABLE);    //高级定时器主意打开 
}

stm32f103 TIM1发PWM相关推荐

  1. STM32F103输出互补PWM波

    STM32F103单片机定时器自带互补PWM波形输出功能,利用定时器输出比较模式,不仅可以输出互补的 PWM波,还可以设置输出方波的起始相位和死区时间. 下面就总结一下如何实现PWM互补输出. voi ...

  2. STM32F103C8 TIM1 CHN PWM输出代码

    STM32F103高级定时器TIM1输出PWM波程序 /** 配置PB13输出,即全使能TIM1_CH1N通道,禁用TIM1_CH1通道,禁用更新中断* 其它参数看着修改*/ void Timer1I ...

  3. c语言tim1-smcr是什么意思,【整理】STM8使用TIM1测量PWM波 | 勤奋的小青蛙

    一基本TIM1测量PWM波形原理 根据上图所示测量PWM的基本思想如下: 每个上升沿开始计数,监测到下降沿时记录下当前值为高电平时间,再检测到一个下降沿记录下当前值为周期,同时清零计数器开始测量下个周 ...

  4. STM32定时器间的同步 主TIM1产生PWM 从TIM4精确控制TIM1 PWM脉冲数量

    STM32 定时器间的同步 主TIM1产生PWM 从TIM4精确控制TIM1 PWM脉冲数量 文章目录 STM32 定时器间的同步 主TIM1产生PWM 从TIM4精确控制TIM1 PWM脉冲数量 编 ...

  5. STM32f103,TIM1,TIM2,TIM3,TIM4,TIM5,TIM8,4路PWM输出配置(保姆级)

    没什么可说的,想说的都写在注释里了,重要的事情说三遍:看注释,看注释,看注释 定时器的.c文件: /************************************************** ...

  6. STM32F103 16路PWM 配置

    1. 前言 底层库:基于原子的标准库函数 适用芯片:STM32F103系列型号芯片,其他型号未测试(注:已测型号:C8T6.CBT6.RCT6.RET6.ZET6) 所用到的定时器:TIM1.TIM2 ...

  7. STM8S005 TIM1定时器PWM应用

    STM8中的定时器1 是一个高级定时器,为什么说它是个高级定时器呢?因为它的功能比较多,其中就有一个是输出PWM的功能.我们可以直接掉用STM8官方的库函数来实现它的功能. 以上就是STM8定时器1的 ...

  8. STM32F4 定时器TIM1输出PWM

    [实验目的] 输出7路占空比不同的PWM信号是各个版本ST库必备的例子.本实验的主要目的不是表现ST芯片PWM功能的强大,而是要完成输出的精确计算. [实验内容] 输出7路PWM信号,并用示波器测量输 ...

  9. 高级定时器TIM1输出PWM波

    高级定时器(TIM1和TIM8)相较于通用定时器,它的函数配置更多,一个都不能少,否则输出不了PWM波,所以在此写下通用定时器和高级定时器PWM波配置的区别,以记录问题. 通用定时器TIM3通道1配置 ...

最新文章

  1. python3.6字典有序_Python-字典是用Python3.6+订购的吗?
  2. Reflect.ownKeys
  3. Uniform Distribution均匀分布
  4. 双Y轴echarts
  5. 安装hadoop中启动namenode、datanode有警告
  6. matlab 摄动波浪理论,等于波浪论文,关于MATLAB在实验室波高采集中的应用相关参考文献资料-免费论文范文...
  7. Win11任务栏不显示时间怎么办?Win11任务栏不显示时间的解决方法
  8. 《二十世纪西方思想文化潮流》笔记--导论5--理性的后果1
  9. Python pygame,精灵和精灵组
  10. VLDB 2010 论文写作和格式 format 投稿
  11. 2020年12月电子学会Python等级考试试卷(一级)考题解析
  12. 最小二乘法计算一组数据的斜率(线性回归、趋势计算)
  13. sidebar(侧边栏原理vue admin)
  14. 网络游戏引擎 Arianne RPG
  15. js转换php时间戳,js对时间戳转换的方法
  16. Fishman的渔人码头 - Fishman - 新浪BLOG
  17. ASP.NET使用文件流的方式下载文件
  18. 树莓派上使用 Gstreamer做视频推流
  19. 使用”Succession插件”平刷使用方法教程
  20. 理解稀疏矩阵存储形式

热门文章

  1. 【你掌心的温度,安抚着受伤的心灵】
  2. 爆笑谷经典对白(2)
  3. windows的虚拟磁盘(vhd,vhdx)使用
  4. java 读取ini配置文件
  5. Windows 10 下载 (4)
  6. 调试经验——Oracle复制一条记录到另外一条记录(主键除外)
  7. 输入文件路径的快捷方式
  8. TypeError: 'NoneType' object is not callable : 解决
  9. Shader-透明效果-透明度测试
  10. I——懒癌患者大四狗