STM32的TIM1和TIM8是两个高级定时器,TIM8_CH1N和TIM8_CH1如果两路都需要输出PWM则不能独立输出不同的占空比,他们只能输出可以带死区控制的互补波形。这里只讨论如何在TIM8_CH1N上输出PWM波形。

STM32F407 100引脚的Pin30 => PA5 => TIM8_CH1N

 //Pin30 PA5 TIM8_CH1NRCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8,ENABLE);    //TIM8时钟使能    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);     //使能PORTA时钟 RCC_GetClocksFreq(&freqInfo);GPIO_PinAFConfig(GPIOA,GPIO_PinSource5,GPIO_AF_TIM8); //PA5复用为定时器TIM8_CH1N功能GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;           //Pin5GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;        //使用复用功能GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;    //速度100MHzGPIO_InitStructure.GPIO_OType = GPIO_OType_PP;      //推挽复用输出GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;        //上拉GPIO_Init(GPIOA,&GPIO_InitStructure);              //初始化PA5TIM_TimeBaseStructure.TIM_Prescaler = X_PRESCALER - 1;//预分频后频率为1MHzTIM_TimeBaseStructure.TIM_Period = X_MIN_US_PER_PULSE - 1;//自动重装载值,确定pwm周期为多少TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上计数模式TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;//不分频TIM_TimeBaseInit(TIM8,&TIM_TimeBaseStructure);//初始化TIM8定时器//初始化TIM8_CH1N PWM模式   TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //选择定时器模式:TIM脉冲宽度调制模式1TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Disable;//禁用TIM8_CH1输出TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;//使能TIM8_CH1N输出TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset;//设置TIM8_CH1空闲电频状态TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCNIdleState_Reset;//设置TIM8_CH1N空闲电频状态//只要TIM的 计数器值<比较器值 都是有效电频,否则为无效。但是可以设置PWM的有效电频是低电频还是高电频。TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;//设置TIM8_CH1有效电频状态TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_Low;//设置TIM8_CH1N有效电频状态TIM_CtrlPWMOutputs(TIM8 , ENABLE);//高级定时器TIM1和TIM8必须使能这一句否则无法输出pwmTIM_Cmd(TIM8 , ENABLE);//使能TIM8TIM_SetAutoreload(TIM8 , 1000);//设置自动重载值TIM_SetCompare1(TIM8 , (TIM8->ARR + 1) / 2);//设置TIM8_CH1N输出50%占空比

需要特别注意的是3个地方

1. TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;

注意这里使用的不是TIM_OutputState_Enable而是TIM_OutputNState_Enable

2. TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCNIdleState_Reset;

注意这里使用的不是TIM_OCIdleState_Reset而是TIM_OCNIdleState_Reset

3. TIM_CtrlPWMOutputs(TIM8 , ENABLE);

高级定时器TIM1和TIM8必须使能这一句否则无法输出pwm

STM32F407高级定时器TIM8_CH1N输出PWM配置相关推荐

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

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

  2. STM32F407高级定时器-死区时间研究-STM32CubeMX

    距离上次写笔记,已经过去好长时间了 中间也折腾过不少东西,但是都没咋整理,主要是这中间都是在干活儿,不是自己想要研究的,也没想着要写. 从去年10月份开始想要学习FOC,10月份研究了一个月,到11月 ...

  3. STM32F4 TIM1输出PWM配置

    芯片使用的是STM32F407VET6,在项目中使用PWM控制LCD背光亮度,硬件设计使用PB0--TIM1-CH2N,使用时出现PWM的输出受LCD显示内容相关函数影响 原因: 使用硬件PB0--T ...

  4. STM32F4 定时器TIM1输出PWM

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

  5. STM32单片机:定时器TIM输出PWM波

    学习32单片机过程中使用的工具:MDK Keil5 + 正点原子精英版(STM32F103ZET6)+ STM32CubeMX + HAL开发 一.PWM的产生原理 关于PWM的产生原理网上有很多教程 ...

  6. STM32-Chapter1-6电机开发概述,定时器之基本定时器定时高级定时器互补输出输入捕获输出比较实验

    一  需要掌握的技能 希望经过前面介绍的电机开发的应用场景对学习电机应用开发产生浓厚的兴趣,并且能让你更 加坚定地开始学习电机应用开发.那么该如何学习呢?对于电机驱动开发工程师,会有如下基本 要求: ...

  7. STM32F0xx_TIM输出PWM配置详细过程

    前言 前面我说过STM32的定时器功能很强大,今天就来总结一下它的另外一个"强大"功能:TIM的比较输出功能,输出可调PWM波形.直接调用函数接口"TIM2_CH1_PW ...

  8. STM32F7同一定时器多路输出PWM波通道之间相互影响问题

    --------------------------2020/8/12更新-------------------------------- 这次用Cube直接生成PWM控制代码,然后再RT-Threa ...

  9. STM32H743+CubeMX-低功耗定时器LPTIM输出PWM波

    文章目录 一.前言 二.CubeMX 2.1.Clock Configuration 2.2.LPTIM2 Mode and Configuration 2.3.Parameter Settings ...

最新文章

  1. Github 3.4k星,200余行代码,让你实时从视频中隐身
  2. MyCAT-1.4-RC性能测试(初步施工)
  3. 部门名称部门结构叠用_DYT|部门名称创意设计比赛,你pick哪一个?
  4. How does gateway system determine whether cache is hit
  5. iOS开发- 蓝牙后台接收数据(BLE4.0)
  6. C++ primer 11章关联容器
  7. 【HHHOJ】NOIP模拟赛 捌 解题报告
  8. 阿里云智能图像识别服务发布
  9. 拓端tecdat|R语言ggsurvplot绘制生存曲线报错 : object of type ‘symbol‘ is not subsettable
  10. python自动化输入文本_快速掌握Python Selenium Web自动化:)四、使用Selenium在网页上进行操作...
  11. 关于idea,双击选中问题
  12. C语言中,int、char、float、double各占多少字节
  13. 苹果真伪查询_拆解报告:山寨版苹果AirPods Pro
  14. 吱口令生成淘宝BP抢购链接
  15. 合格的攻击性白帽黑客应该具备的基本素质(1)
  16. linux usb 双机互联,USBLink电缆连接实现双机互联步骤及双机互联应用介绍
  17. 大数据hive篇--同比环比
  18. 每日方法分享:免费一键抠图方法都有哪些?
  19. 图形编程丨图形绘制基础imgui篇—D3D9 HOOK 创建内部Imgui窗口
  20. 共享充电步入“大三元”时代,三电一兽们吃得饱吗?

热门文章

  1. 适合初学者入门的Java基础视频
  2. 计算机wps二级知识选择题,2020年计算机等级WPS考试经典练习题及答案
  3. 面试复习题--音视频
  4. python 语音转文字_python使用科大讯飞语音合成文字转语音
  5. 2021计算机二级抽考的是,2021年计算机二级office考试将采用2016版本软件
  6. Cartographer安装教程及踩坑实录
  7. 谈什么一生挚爱,回到人海里,我们也会陌生的不像个样子。
  8. VS2010读取大恒相机图像并显示
  9. open3d环境错误汇总
  10. 公司客户网上报修系统V12.1