硬汉嵌入式论坛

 找回密码
 立即注册
查看: 10418|回复: 21
收起左侧

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

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107104
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, 下载次数: 2105)




     
   
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

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

回复

使用道具 举报

7

主题

70

回帖

91

积分

初级会员

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

使用道具 举报

116

主题

800

回帖

1148

积分

至尊会员

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

使用道具 举报

0

主题

6

回帖

6

积分

新手上路

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

使用道具 举报

9

主题

42

回帖

69

积分

初级会员

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

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

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

回 wgco98 的帖子

wgco98:为什么用keil打开是空的? (2016-12-30 14:59) 
MDK4和MDK5均没有问题。
回复

使用道具 举报

9

主题

42

回帖

69

积分

初级会员

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

使用道具 举报

16

主题

87

回帖

135

积分

初级会员

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

使用道具 举报

0

主题

10

回帖

10

积分

新手上路

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

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

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

回 nicole088 的帖子

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

QQ截图20170831013729.png
回复

使用道具 举报

27

主题

91

回帖

172

积分

初级会员

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

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

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

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

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

回复

使用道具 举报

27

主题

91

回帖

172

积分

初级会员

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

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

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

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

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

楼上已经回复,仅需添加那个函数即可,其它不用动
回复

使用道具 举报

27

主题

91

回帖

172

积分

初级会员

积分
172
发表于 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 */
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

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

你获下你的SystemCoreClock实际是多少,我这里没问题,就是楼主位的测试。
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

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


回复

使用道具 举报

23

主题

1406

回帖

1475

积分

至尊会员

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

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

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

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

后面弄个升级版,让小数频率也可以得到支持。
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

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

那就太期待了
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2019-11-5 14:50:13 | 显示全部楼层
硬汉大佬,我需要用TIM1的6路通道输出不同PWM,现在以你的例子为基础,然后修改成如下之后,下载程序然后用示波器看这些引脚,发现PE9 11 13 14的波形像那个三角形那种,然后PE8 10 12 波形却没问题。这种情况我是还有什么没配置么?

bsp_SetTIMOutPWM(GPIOE, GPIO_Pin_9, TIM1, 1, 20000, 5000);
bsp_SetTIMOutPWM(GPIOE, GPIO_Pin_11, TIM1, 2, 25000, 5000);
bsp_SetTIMOutPWM(GPIOE, GPIO_Pin_13, TIM1, 3, 30000, 5000);
bsp_SetTIMOutPWM(GPIOE, GPIO_Pin_14, TIM1, 4, 35000, 5000);

bsp_SetTIMOutPWM_N(GPIOE, GPIO_Pin_8, TIM1, 1, 40000, 5000);
bsp_SetTIMOutPWM_N(GPIOE, GPIO_Pin_10, TIM1, 2, 45000, 5000);
bsp_SetTIMOutPWM_N(GPIOE, GPIO_Pin_12, TIM1, 3, 50000, 5000);
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-18 11:34 , Processed in 0.321131 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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