请选择 进入手机版 | 继续访问电脑版

安富莱电子论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 6876|回复: 20
收起左侧

[客户分享] V5开发板定时器功能之PWM例子,支持TIM1到TIM14共14个定时器的所有通道随意配置,调

[复制链接]

5667

主题

3万

帖子

4万

积分

管理员

做人第一,工作第二

Rank: 9Rank: 9Rank: 9

积分
45615
QQ
发表于 2016-7-30 12:15:18 | 显示全部楼层 |阅读模式
1.  只要输出的波形没有出现畸形,F407能够支持的频率都是支持的,支持TIM1到TIM4共14个定时器PWM配置,调用极其简单
     且支持互补输出:
     /*
    可以输出到GPIO的TIM通道:


    TIM1_CH1, PA8,    PE9,
    TIM1_CH2, PA9,    PE11
    TIM1_CH3, PA10,    PE13
    TIM1_CH4, PA11,    PE14


    TIM2_CH1, PA15 (仅限429,439) 407没有此脚
    TIM2_CH2, PA1,    PB3
    TIM2_CH3, PA2,    PB10
    TIM2_CH4, PA3,    PB11


    TIM3_CH1, PA6,  PB4, PC6
    TIM3_CH2, PA7,    PB5, PC7
    TIM3_CH3, PB0,    PC8
    TIM3_CH4, PB1,    PC9


    TIM4_CH1, PB6,  PD12
    TIM4_CH2, PB7,    PD13
    TIM4_CH3, PB8,    PD14
    TIM4_CH4, PB9,    PD15


    TIM5_CH1, PA0,  PH10
    TIM5_CH2, PA1,    PH11
    TIM5_CH3, PA2,    PH12
    TIM5_CH4, PA3,    PI10


    TIM8_CH1, PC6,  PI5
    TIM8_CH2, PC7,    PI6
    TIM8_CH3, PC8,    PI7
    TIM8_CH4, PC9,    PI2


    TIM9_CH1, PA2,  PE5
    TIM9_CH2, PA3,    PE6


    TIM10_CH1, PB8,  PF6


    TIM11_CH1, PB9,  PF7


    TIM12_CH1, PB14,  PH6
    TIM12_CH2, PB15,  PH9


    TIM13_CH1, PA6,  PF8
    TIM14_CH1, PA7,  PF9


    APB1 定时器有 TIM2, TIM3 ,TIM4, TIM5, TIM6, TIM7, TIM12, TIM13, TIM14
    APB2 定时器有 TIM1, TIM8 ,TIM9, TIM10, TIM11
   


    APB1 定时器的输入时钟 TIMxCLK = SystemCoreClock / 2; 84M
    APB2 定时器的输入时钟 TIMxCLK = SystemCoreClock; 168M
*/
2.  用户只需调用此函数即可:
      正常输出:
1.png

     互补输出:
2.png




3.  举例说明,比如:我们希望PA9引脚输出10KHz , 直接在主程序调用函数
      bsp_SetTIMOutPWM(GPIOA, GPIO_Pin_9, TIM1, 2, 10000, 5000);   这里使用的是TIM1的CH2通道就这么简单。
===============================================================
基于V5板子的配套例子,为了简单方便起见,我们使用的是PB6引脚,TIM4的CH1通道进行输出10KHz:
5.png

示波器测试效果,测试频率10KHz:
TEK00000.PNG

=================================================
基于V5板子的例子下载:
V5-定时器PWM,支持TIM1-TIM14所有定时器通道.rar (1.71 MB, 下载次数: 1272)
淘宝小店: https://armfly.taobao.com/
专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

5667

主题

3万

帖子

4万

积分

管理员

做人第一,工作第二

Rank: 9Rank: 9Rank: 9

积分
45615
QQ
 楼主| 发表于 2016-7-30 13:00:30 | 显示全部楼层
V5板子配套外设的ili9488背光调节,还有蜂鸣器的设置都是用的这个函数。

淘宝小店: https://armfly.taobao.com/
专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

4

主题

60

帖子

68

积分

初级会员

积分
68
发表于 2016-7-30 15:48:30 | 显示全部楼层
[s:150]  [s:150]  [s:150]  [s:150]  [s:150]  [s:150]
回复

使用道具 举报

109

主题

829

帖子

1047

积分

至尊会员

积分
1047
QQ
发表于 2016-8-1 08:44:58 | 显示全部楼层
在电机控制中定时器应用还是很广的
回复

使用道具 举报

0

主题

6

帖子

0

积分

新手上路

积分
0
发表于 2016-11-10 09:16:13 | 显示全部楼层
[s:151]
回复

使用道具 举报

8

主题

32

帖子

48

积分

新手上路

积分
48
QQ
发表于 2016-12-30 14:59:13 | 显示全部楼层
为什么用keil打开是空的?
回复

使用道具 举报

5667

主题

3万

帖子

4万

积分

管理员

做人第一,工作第二

Rank: 9Rank: 9Rank: 9

积分
45615
QQ
 楼主| 发表于 2016-12-30 15:26:41 | 显示全部楼层

回 wgco98 的帖子

wgco98:为什么用keil打开是空的? (2016-12-30 14:59) 
MDK4和MDK5均没有问题。
淘宝小店: https://armfly.taobao.com/
专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

8

主题

32

帖子

48

积分

新手上路

积分
48
QQ
发表于 2017-1-3 15:10:08 | 显示全部楼层
可以了[s:140]
回复

使用道具 举报

6

主题

40

帖子

52

积分

初级会员

积分
52
发表于 2017-4-7 23:38:31 | 显示全部楼层
能控制数量就好了
回复

使用道具 举报

0

主题

1

帖子

1

积分

新手上路

积分
1
发表于 2017-8-30 22:04:07 | 显示全部楼层
完全重映射, 没有重映射
回复

使用道具 举报

5667

主题

3万

帖子

4万

积分

管理员

做人第一,工作第二

Rank: 9Rank: 9Rank: 9

积分
45615
QQ
 楼主| 发表于 2017-8-31 01:40:58 | 显示全部楼层

回 nicole088 的帖子

nicole088:
完全重映射, 没有重映射

QQ截图20170831013729.png
淘宝小店: https://armfly.taobao.com/
专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

16

主题

76

帖子

108

积分

初级会员

积分
108
发表于 2019-3-2 09:23:12 | 显示全部楼层
请教个事,如果主频不是168 比如144MHZ,需要在BSP_PWM修改哪保证对应的PWM输出

回复

使用道具 举报

5667

主题

3万

帖子

4万

积分

管理员

做人第一,工作第二

Rank: 9Rank: 9Rank: 9

积分
45615
QQ
 楼主| 发表于 2019-3-2 09:49:14 | 显示全部楼层
borrow1988 发表于 2019-3-2 09:23
请教个事,如果主频不是168 比如144MHZ,需要在BSP_PWM修改哪保证对应的PWM输出

系统工作到144MHz后,调用下面函数更新下即可

SystemCoreClockUpdate();        /* 根据PLL配置更新系统时钟频率变量 SystemCoreClock */

淘宝小店: https://armfly.taobao.com/
专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

16

主题

76

帖子

108

积分

初级会员

积分
108
发表于 2019-3-2 14:10:52 | 显示全部楼层
eric2013 发表于 2019-3-2 09:49
系统工作到144MHz后,调用下面函数更新下即可

SystemCoreClockUpdate();        /* 根据PLL配置更新系统时钟 ...

我的意思 ,168M对应的10KPWM,改为144后,需要在bsp_SetTIMOutPWM修改什么不?
回复

使用道具 举报

5667

主题

3万

帖子

4万

积分

管理员

做人第一,工作第二

Rank: 9Rank: 9Rank: 9

积分
45615
QQ
 楼主| 发表于 2019-3-2 14:29:27 | 显示全部楼层
borrow1988 发表于 2019-3-2 14:10
我的意思 ,168M对应的10KPWM,改为144后,需要在bsp_SetTIMOutPWM修改什么不?

楼上已经回复,仅需添加那个函数即可,其它不用动
淘宝小店: https://armfly.taobao.com/
专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

16

主题

76

帖子

108

积分

初级会员

积分
108
发表于 2019-3-2 16:13:15 | 显示全部楼层
eric2013 发表于 2019-3-2 14:29
楼上已经回复,仅需添加那个函数即可,其它不用动

哦,明白了,谢了大汉兄
用的TIM1,为什么_ulFreq 需要*2? 比如bsp_SetTIMOutPWM(GPIOE, GPIO_Pin_9, TIM1, 1, 20000, 9000); /* 配置Pe9引脚输出10KHz */

bsp_SetTIMOutPWM(GPIOE, GPIO_Pin_9, TIM1, 1, 10000, 9000); /* 配置Pe9引脚输5KHz */
回复

使用道具 举报

5667

主题

3万

帖子

4万

积分

管理员

做人第一,工作第二

Rank: 9Rank: 9Rank: 9

积分
45615
QQ
 楼主| 发表于 2019-3-2 16:59:20 | 显示全部楼层
borrow1988 发表于 2019-3-2 16:13
哦,明白了,谢了大汉兄
用的TIM1,为什么_ulFreq 需要*2? 比如bsp_SetTIMOutPWM(GPIOE, GPIO_Pin_9, T ...

你获下你的SystemCoreClock实际是多少,我这里没问题,就是楼主位的测试。
淘宝小店: https://armfly.taobao.com/
专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

0

主题

7

帖子

7

积分

新手上路

积分
7
发表于 2019-4-4 11:34:59 | 显示全部楼层
硬汉哥,PWM频率想支持比如0.5HZ   0.6HZ   10.1HZ  10.2HZ 可调的 ,该如何更改呢?


回复

使用道具 举报

3

主题

123

帖子

129

积分

初级会员

积分
129
发表于 2019-4-4 11:36:41 | 显示全部楼层
周明 发表于 2019-4-4 11:34
硬汉哥,PWM频率想支持比如0.5HZ   0.6HZ   10.1HZ  10.2HZ 可调的 ,该如何更改呢?

这种低频的要准确,直接定时器中断不是so easy
回复

使用道具 举报

5667

主题

3万

帖子

4万

积分

管理员

做人第一,工作第二

Rank: 9Rank: 9Rank: 9

积分
45615
QQ
 楼主| 发表于 2019-4-8 02:20:38 | 显示全部楼层
周明 发表于 2019-4-4 11:34
硬汉哥,PWM频率想支持比如0.5HZ   0.6HZ   10.1HZ  10.2HZ 可调的 ,该如何更改呢?

后面弄个升级版,让小数频率也可以得到支持。
淘宝小店: https://armfly.taobao.com/
专注,努力,用心的做好每一件事情,Fighting!
回复

使用道具 举报

0

主题

7

帖子

7

积分

新手上路

积分
7
发表于 2019-4-8 16:17:54 | 显示全部楼层
eric2013 发表于 2019-4-8 02:20
后面弄个升级版,让小数频率也可以得到支持。

那就太期待了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|安富莱电子论坛 ( 鄂ICP备09023347号,公安机关备案号42010602000201 )

GMT+8, 2019-5-21 06:44 , Processed in 0.278492 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表