搜索
查看: 4149|回复: 4

[原创] STM32系列之四旋翼(一)PWM输出与PWM仿真

[复制链接]

该用户从未签到

3

主题

4

帖子

0

蝴蝶豆

初级会员

最后登录
2018-6-15
发表于 2017-9-6 08:20:55 | 显示全部楼层 |阅读模式
本帖最后由 《源》 于 2017-9-6 08:25 编辑

四旋翼如果驱动电机,定时器的PWM输出定然是必不可少的,今天的内容是跟着小马哥的视频,完成高级定时器1的4路PWM输出和如何使用Keil自带的仿真功能检验输出的PWM波。


要使用定时器输出我们需要的PWM,就要会配置定时器。我们直接看高级定时器的功能框图,从框图上看定时器都需要哪些配置:



图中的红色箭头表示一条通道,我们配置好这条通道沿线的寄存器就能输出我们需要的波形了,这条通道上,我标注了三个区域:1、2、3,这三个区域就是需要配置的:
区域1:时钟源选择,我们通过RCC_APB2PeriphClockCmd()就可以选择内部时钟源作为定时器的时钟;

区域2:这里主要是设置时基,通过自动重装载寄存器(TIMx_ARR)、计数器寄存器(TIMx_CNT)、预分频器寄存器(TIMx_PSC)进行设置。对应库函数中的TIM_TimeBaseInit()函数,通过这个函数设置计数模式、预分频数、计数次数等,就可以得到我们想要的计时时间,比如我们要定时1s、1us,这个时间的长度就是通过在这个区域设置的,定时公式为:
T = (TIM_Period +1) X (TIM_Prescaler +1)/TIMxCLK ;
TIM_Period是计数次数,也就是自动重装载中的值,TIM_Prescaler是预分频系数,是预分频器中的值,TIMxCLK是时钟。

区域3:这个区域是输出比较通道的配置,包括输出比较的空闲模式、输出比较模式、极性、输出状态、捕获/比较寄存器等的设置,对应库函数的TIM_OCxInit()函数,其中捕获/比较寄存器是一个16位寄存器,装的是当前捕获/比较寄存器的值,通过设置这个值,我们就可以得到不同占空比的PWM。

另外,除了这些设置,我们还需要使能自动重装载寄存器ARR的预装载功能,失能捕获/比较寄存器CCR的预装载功能,对应的库函数为:
TIM_ARRPreloadConfig(TIM1, ENABLE);
TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable);
失能CCR的预装载功能后,写入的值会立即传到捕获/比较寄存器,不用等到更新事件的发生。
其他的配置就不介绍了,大家可以参考官方例程。

配置好定时器后,我们怎样知道,到底有没有PWM输出呢,检测方法有好几种,视频中介绍的是利用Keil自带的仿真功能,下面我们就说说,这个仿真功能怎么使用:
步骤:
第一步:配置好定时器,运行程序,并且没有错误;
第二步:点击工具栏的“Options for target”,选择Debug选项卡,进行如下设置:

第三步:点击工具栏的“Start/Stop Debug”快捷键,然后点击“Setup”,进入下面的界面,点击红框表示的位置,添加仿真通道:
需要添加四次,即添加四个通道,因为我们有四路输出,添加通道的名称分别为:PORTA.8、PORTA.9、PORTA.10、PORTA.11,我们TIM1的四个输出通道是GPIO_8,GPIO_9,GPIO_10,GPIO_11,通道添加好后,点Close;

第四步:此时,已经有四个通道了,我们需要设置输出通道为数字输出,方法是:鼠标右键点击下图红框所示位置,选择bit即可,每一路都要设置;


第五步:点击工具栏的“Run”,启动仿真,就看到有四路输出了,神不神奇?

今天的内容到这里就结束了,真是收获满满呀……

回复

使用道具 举报

该用户从未签到

19

主题

1734

帖子

7

蝴蝶豆

论坛元老

最后登录
2021-5-10
发表于 2017-9-7 00:24:49 | 显示全部楼层
收获满满呀
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

4

帖子

0

蝴蝶豆

初级会员

最后登录
2018-6-15
 楼主| 发表于 2017-9-7 12:25:01 | 显示全部楼层
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

7

帖子

0

蝴蝶豆

新手上路

最后登录
2018-10-16
发表于 2018-5-2 17:11:53 | 显示全部楼层
楼主您好,为什么我输入PORTA.8会显示“unknown signal”呢?
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

7

帖子

0

蝴蝶豆

新手上路

最后登录
2018-10-16
发表于 2018-5-2 18:24:40 | 显示全部楼层
懂了懂了,按照楼主的配置就可以了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-27 03:02 , Processed in 0.158992 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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