TIM1 是 STM32 的高级定时器,功能很强大,它的每个通道都有对应的互补通道用来互补输出PWM。之前没使用过,今天要用来做 PWM 控制,花了好一番功夫才搞定。

  • 记录下初始化代码:
void  Led_PWM_Init(u16 arr, u32 ckCnt, u16 CCR1_Val)
{uint16_t pscValue = 0;TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_OCInitTypeDef       TIM_OCInitStructure;NVIC_InitTypeDef        NVIC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);   GPIO_Config();                              //PWM控制引脚初始化TIM_DeInit(TIM1);/* Time Base configuration */pscValue = (uint16_t)(SystemCoreClock / ckCnt) - 1;TIM_TimeBaseStructure.TIM_Prescaler         = pscValue ;TIM_TimeBaseStructure.TIM_CounterMode       = TIM_CounterMode_Up;TIM_TimeBaseStructure.TIM_Period            = arr;TIM_TimeBaseStructure.TIM_ClockDivision     = 0;TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;    //高级定时器特有TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);/* Channel 1, 2,3 and 4 Configuration in PWM mode */TIM_OCInitStructure.TIM_OCMode             = TIM_OCMode_PWM1;TIM_OCInitStructure.TIM_OutputState        = TIM_OutputState_Disable;
//    TIM_OCInitStructure.TIM_OCPolarity         = TIM_OCPolarity_High;TIM_OCInitStructure.TIM_OCIdleState        = TIM_OCIdleState_Reset;TIM_OCInitStructure.TIM_OutputNState       = TIM_OutputNState_Enable;    TIM_OCInitStructure.TIM_OCNPolarity        = TIM_OCNPolarity_High;TIM_OCInitStructure.TIM_OCNIdleState       = TIM_OCNIdleState_Set;TIM_OCInitStructure.TIM_Pulse                   = CCR1_Val;                      //占空比TIM_OC1Init(TIM1, &TIM_OCInitStructure);TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable);TIM_ARRPreloadConfig(TIM1, ENABLE);TIM_CtrlPWMOutputs(TIM1, ENABLE);TIM_Cmd(TIM1, ENABLE);
}

高级定时器做PWM的话和其他定时器一样的使用。只是配置不一样。
对于高级定时器来说,要有这句TIM_CtrlPWMOutputs(TIM1, ENABLE);使能PWM输出。
由于只是使用TIM1的通道1的互补通道,所以关闭通道1的 PWM 输出

    TIM_OCInitStructure.TIM_OutputState        = TIM_OutputState_Disable;

打开通道1的互补通道PWM的输出

  TIM_OCInitStructure.TIM_OutputNState       = TIM_OutputNState_Enable;

百度和对照别人的代码,搞了好久也没搞定不能控制亮度。后来发现是没有这句

TIM_OCInitStructure.TIM_OCIdleState        = TIM_OCIdleState_Reset;

上面这句要和下面这句设置相反:
一个是TIM_OCIdleState_Reset、另一个是TIM_OCNIdleState_Set

  TIM_OCInitStructure.TIM_OCNIdleState       = TIM_OCNIdleState_Set;

STM32——TIM1的TIM1_CH1N通道PWM初始化相关推荐

  1. STM32的独立互补PWM初始化控制 kw:PB15 TIM1_CH3N

    测试硬件: STM32F103C8T6,测试功能:PB15 独立PWM输出 TIM1_CH3N 原理图固定了,以PB15作为PWM输出控制引脚,由于引脚定义中,该引脚为TIM1_CH3N互补输出,而本 ...

  2. STM32之TIM 舵机控制PWM

    目录 大概步骤 定时器介绍 输入通道 输入滤波器和边沿检测器 捕获通道 定时器初始化结构体详解 1. TIM_TimeBaseInitTypeDef 定时器基本初始化结构体 TIM_OCInitTyp ...

  3. STM32——TIM1和TIM8定时器笔记

    STM32--TIM1和TIM8定时器 写了一点点发现太多了,根本写不完,下次配合源码写吧,也比较好理解 定时器分类 1.高级定时器(TIM1和TIM8) 2.通用定时器(TIMx(只要不是高级或者基 ...

  4. STM32 TIM1输入捕获测试输入信号的频率

    测试芯片STM32F103C8T6,外部时钟 1.输入捕获通道测试 TIM1的CH1N,无法进行输入捕获(估计是没找到其他原因,测试就也没有测试出来效果),直接改用TIM1的CH1通道进行测试,可以进 ...

  5. STM32输出互补死区刹车PWM

    互补死区刹车原理这里不详述 互补理解为相反的信号 死区简单理解为信号跳变的缓冲时间 刹车简单理解为暂停信号输出,既然是暂停意味着放开后会再次启动 代码分享 #include "Advance ...

  6. STM32 TIM1高级定时器RCR重复计数器的理解

    STM32 TIM1高级定时器RCR重复计数器的理解 TIMx_RCR重复计数器寄存器,重复计数器只支持高级定时器TIM1和TIM8,下面看标准外设库的TIM结构体的封装: typedef struc ...

  7. stm32+增量式pid+max6675 PWM温度控制

    stm32+增量式pid+max6675 PWM温度控制 本文采用的芯片为STM32F103RCT6 温度芯片为MAX6675 之前spi通讯的max6675代码: https://blog.csdn ...

  8. 【电赛备考】基于STM32控制的可调PWM输出+LCD显示

    情况分析 大三老油条一枚,大一时赶上19年国赛申请留校一月自学(划水)开赛以后就和队友参观了一下其他队伍准备的情况就愉快的回家了.(材料都没买),因为疫情的原因大二的省赛推迟到了大三.趁着考研压力还不 ...

  9. GD32定时器——单个定时器下多个通道PWM捕获

    GD32定时器--单个定时器下多个通道PWM捕获 文章目录 GD32定时器--单个定时器下多个通道PWM捕获 背景 方案实现 代码 问题 背景 目前在GD32上开发,由于IO资源不足,需要在一个定时器 ...

最新文章

  1. 兴义网站服务器存储,兴义ipfs分布式存储操作系统
  2. Storm-源码分析-EventManager (backtype.storm.event)
  3. 【推荐】有趣儿的PHP文件操作常用函数总结
  4. iphone原彩显示对眼睛好吗_在 iPhone 上调整显示与文字大小,让眼睛更舒服
  5. centos 对已有卷扩容_centos LVM扩容 添加磁盘
  6. plsql查询数据中文乱码
  7. 让执行程序引用特定目录下的Dll
  8. 再见了!微软宣布停止服务支持:一代经典系统退出舞台
  9. php 上一页 下一页代码,php无限上一页,下一页,求完善代码??
  10. close wait 过多原因_从Linux源码看TIME_WAIT状态的持续时间
  11. 英语总结系列(二十四):历经GCT的一月
  12. windows curl ssl版本号编译
  13. zookeeper的zxid
  14. 思科创建账户以及模拟器(Cisco Packet Tracer) v7.2.1使用教程
  15. Shell脚本之免交互操作
  16. 快速查找某个范围内的所有素数
  17. vue学习笔记-绑定属性 绑定class及style(2)
  18. 我也来谈谈《我不是药神》这部电影
  19. 每个人心里一亩一亩田,每个人心中一个一个梦
  20. 清华女硕士代言西湖名胜六和塔(组图),张姣怡,杭州西湖六和塔

热门文章

  1. Linux 查看服务器cpu信息常用命令大全
  2. Lab3 Attack Lab
  3. 拼多多无货源店群模式现在还能赚钱吗?(小珏)
  4. LVGL 7.8.1生成二维码例程
  5. 笔记本合上盖子就断网怎么办?
  6. 读书笔记 之《软件架构设计: 大型网站技术架构与业务架构融合之道》
  7. 通过网页免费下载音乐(F12)
  8. origin画图畸变
  9. 使用Quagga测试Neutron BGP动态路由(by quqi99)
  10. 电视盒子系统是安卓还是yunOS,三招快速弄清