前言

前面我说过STM32的定时器功能很强大,今天就来总结一下它的另外一个“强大”功能:TIM的比较输出功能,输出可调PWM波形。直接调用函数接口“TIM2_CH1_PWM(uint32_t Freq, uint16_t Dutycycle)”传入频率和占空比就能输出指定的波形。

我提供的软件工程直接调用是比较简单就能实现想要的PWM波形。但是,如果你是学习者,建议还是进去函数把每一个细节了解清楚,里面的东西可能对你掌握TIM很有帮助。

本着免费分享的原则,如果你觉得分享的内容对你有用,认可我分享的文章,就请用微信搜索“EmbeddDeveloper” 或者扫描下面二维码、关注,还有更多精彩内容等着你。

下载

文章提供的“软件工程”都是在硬件板子上进行多次测试、并保证没问题才上传至360云盘,请放心下载测试,如有问题请检查一下你的板子是否有问题。

ST标准外设库和参考手册、数据手册等都可以在ST官网下载,你也可以到我的360云盘下载。关于F0系列芯片的参考手册有多个版本(针对F0不同芯片),但有一个通用版本,就是“STM32F0x128参考手册V8(英文)2015-07”建议参考该手册,以后如果你换用一种型号芯片也方便了解。

今天的软件工程下载地址(360云盘):

https://yunpan.cn/cSitPxgQKsET5  访问密码

STM32F0xx的资料可以在我360云盘下载:

https://yunpan.cn/cS2PVuHn6X2Bj  访问密码 8c37

准备工作

建议准备F0的参考手册和数据手册,方便查找相关知识,没有的请到ST官网或到我360云盘下载。

今天总结的软件工程是基于“TIM基本延时配置详细过程”修改而来,因此需要将该软件工程下载准备好。今天学习的源代码主要添加在timer.c文件里面。

比较输出原理

看下面框图,计数器的时钟从RCC处来,经过分频之后达到计数器,经过比较器进行比较,达到设定值,产生一个事件对应引脚翻转。主要就是这三个寄存器:重载值、计数值、比较值。说到这里若还不明白请仔细想一下。

配置过程详情

①RCC时钟

该函数位于bsp.c文件下面;

我个人习惯第一步配置时钟,ST官方提供的例程也是把配置时钟放在前面。关于RCC时钟的配置比较重要,有好几次我就是由于忘记配置相应RCC时钟,让我找了很久的问题,最后才发现是RCC时钟没有配置。

注意:

外设时钟不要随便添加,比如:RCC_APB1外设不要配置在RCC_APB2时钟里面【如:RCC_APB2PeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);这样能编译过,但是错误的

我每次都提醒RCC时钟,是因为很多人就是因为时钟而导致软件运行有问题,所以,提醒更多人要注意配置RCC.

②输出引脚配置

该函数位于timer.c文件下面;

注意:

复用功能必须配置好,上面两处,有一处没配置好,对应引脚都不会输出PWM波形。

③TIM比较输出配置

该函数位于timer.c文件下面;

注意:

决定输出频率和占空比主要由这三个参数(TIM2_PRESCALER_VALUE、tim2_period、tim2_pulse)决定的。

以今天工程输出1KHz,20%来举例说明:

TIM2_PRESCALER_VALUE = 72M / 36M - 1 = 1

tim2_period = 36000 - 1

tim2_pulse = 7200

这三个怎么得来的请看代码,今天工程输出的波形如下图:

④重点

A.细心研究过代码的人会发现TIM_OCMode_PWM1,还有一个TIM_OCMode_PWM2,这两个的区别是什么呢? 答案是:输出的极性(也就是方向)不一样。

这时候又有人问:那下面的输出极性TIM_OCPolarity_High与上面的关系是什么呢?答案是:这两个参数配合一起输出决定PWM波形的极性。

也就是说不同参数可以达到一样的效果,下图参数的配置同样可以输出一样的波形。

感兴趣的朋友可以试着修改测试一下效果。

B.今天的工程可以设置周期性中断(也就是1ms中断一次),感兴趣的朋友可以试着写一下。使用串口打印测试的话,尽量频率低一点,不然串口响应不过来。

说明

或许你硬件芯片不是提供工程里面的芯片,但是STM32F0的芯片软件兼容性很好,可以适用于F0其他很多型号的芯片,甚至是F2、F4等芯片上(具体请看手册、或者亲自测试)。

本文章提供的软件工程是基于ST标准外设库为基础建立而成,而非使用STM32CubeMX建立工程。个人觉得使用ST的标准外设库适合与学习者,STM32CubeMX建立工程结构复杂,对于学习者,特别是初学者估计会头疼。

今天的工程是基于工程“STM32F0xx_TIM基本延时配置详细过程”修改而来,以上实例总结仅供参考,若有不对之处,敬请谅解。

最后

如果你喜欢我分享的内容,你又想了解更多相关内容,请关注文章开头的微信公众号,新内容持续更新中,后期将会有更多精彩内容出现。

阅读原文

STM32F0xx_TIM输出PWM配置详细过程相关推荐

  1. STM32F0xx_TIM输入捕获(计算频率)配置详细过程

    推荐 分享一个大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!http://www.captainbed.net/strongerhuang 我的网站:h ...

  2. STM32F0xx_SPI读写(Flash)配置详细过程

    Ⅰ.概述 关于SPI(Serial Peripheral Interface)串行外设接口可以说是单片机或者嵌入式软件开发人员必须掌握的一项通信方式,就是你在面试相关工作的时候都可能会问及这个问题.在 ...

  3. STM32F0xx_EXIT中断配置详细过程

    Ⅰ.概述 EXIT外部中断在使用到按键或者开关控制等应用中比较常见,低功耗中断唤醒也是很常见的一种.因此,EXIT在实际项目开发中也是比较常见的一种. STM32F0中外部中断EXIT属于中断和事件的 ...

  4. STM32F0xx_ADC采集电压配置详细过程

    前言 关于ADC这一块的功能基本上也算是CortexM芯片的标配了.ST的每一块芯片都有这个功能,只是说因型号不同,通道数.位数等有所不同.STM8的芯片大多数都是10的,也就是说分辨率可达到:参考电 ...

  5. STM32F0xx_FLASH编程(片内)配置详细过程

    Ⅰ.概述 关于数据的储存,我觉得编程的人基本上都会使用到,只是看你储存在哪里.STM32的芯片内部FLASH都是可以进行编程的,也就是说可以拿来储存数据.但是,很多做一些小应用程序开发的人都没有利用好 ...

  6. STM32F0xx_PWR低功耗配置详细过程

    Ⅰ.概述 今天总结PWR部分知识,请看"STM32F0x128参考手册V8"第六章.提供的软件工程是关于电源管理中的停机模式,工程比较常见,但也是比较简单的一个实例,根据项目的不同 ...

  7. STM32F0xx_RTC实时时钟配置详细过程

    推荐 分享一个大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!http://www.captainbed.net/strongerhuang Ⅰ.概述 今 ...

  8. STM32F0xx_看门狗(独立+窗口)配置详细过程

    Ⅰ.概述 对于看门狗,我觉得做单片机或者嵌入式开发的人员来说并不陌生,今天总结STM32F0看门狗的功能,F0的看门狗有两种:独立和窗口看门狗. 今天提供两种看门狗的软件工程实例,供大家下载. 两种看 ...

  9. SQLyog安装配置详细过程

    SQLyog安装配置详细过程 一.小啊呜资源分享 二.SQLyog安装配置过程 叮嘟!这里是小啊呜的学习课程资料整理.好记性不如烂笔头,今天也是努力进步的一天.一起加油进阶吧! 一.小啊呜资源分享 免 ...

最新文章

  1. Logistic Regression--逻辑回归算法汇总
  2. 工业机器人行业研究报告
  3. 计算机组成原理形考任务五答案,计算机组成原理形考任务5
  4. JAVA学生成绩分析系统任务书,学籍管理系统任务书
  5. 三年之久的 etcd3 数据不一致 bug 分析
  6. SAP Commerce Cloud Spartacus UI 的购物车 Cart 功能
  7. 您的JVM是否泄漏文件描述符-像我的一样?
  8. Tomcat的实现原理
  9. php递归函数的用法,PHP递归函数用法
  10. 在设计四人抢答器中灯全亮_四人智力竞赛抢答器最终版(资料4)
  11. 屏幕小于6英寸的手机_6寸手机好不好用 手机屏幕尺寸多大合适
  12. flutter安装教程与XD教程
  13. C#导出数据—使用Word模板
  14. Oracle中国区大裁员:昔日辉煌不再,退出中国市场?
  15. 显示器选购参数解析-为了给笔记本买个外接显示器,我的笔记本核显支持4K60Hz吗
  16. java md5加密 jar包_BeanShell调用自己写的jar包进行MD5加密
  17. proteus8单片机c语言仿真教程,入门学习Proteus 8仿真软件以及C51单片机的LED点亮(C语言)——实例...
  18. 社区发现研究现状(一)
  19. 域控管理员账号登录Windows Server 2016服务器,鼠标点击声音、图标等设置报错 rundll32.exe Windows无法访问指定设备、路径或文件。
  20. 医疗供应链安全领域的相关调查(7篇相关论文简介)

热门文章

  1. uView——分段器、选项卡
  2. 用photoshop套索功能抠图
  3. 关于读书 - 如何读书
  4. 再有三天就国庆节啦!!!~~~~~~~~~~~
  5. 基于SSH+MySQL的会员积分管理系统
  6. 有关武汉的手机软件开发状况
  7. 为自己搭建一个分布式 IM(即时通讯) 系统
  8. 视频剪辑学习 pr 中视频
  9. buuctf-misc-梅花香自苦寒来
  10. joycon无法连接主机_Joy-Con的按键在连接到主机时没有响应