STMCU小助手
发布时间:2022-8-19 15:45
|
概述 本篇文章主要介绍如何使用STM32CubeMX输出PWM,并制作呼吸灯效果。 ( W" T+ H- ?$ N9 r A. f; { 硬件准备 首先需要准备一个开发板,这里我准备的是NUCLEO-F030R8的开发板:* L) q) ?3 \3 Y7 E& | ; |8 e( n0 w( |5 h
5 z# @! a9 k6 O 选择芯片型号5 G- _) W/ \9 K- h
6 F& X/ J' D) e- k 配置时钟源) a$ G( F8 K' O- h' ]9 b4 G HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用内置的时钟源,故都选择Disable选项,如下所示:) ~% E/ @. n1 @& H+ ` , y" e, _3 I% Q
配置时钟树+ \# C6 E3 c- b STM32F0的最高主频到48M,所以配置48即可:& N. S9 X* U0 }, d4 @ & V: C; P) e% i9 X* \
7 T# _8 ]; F& R6 l" ?. M PWM配置! E+ A8 }& c0 l+ f 本次实验使用的是TIM3的通道1来输出PWM波,选择时钟,并且选择通道1的PWM模式。2 V- t+ C" J& y! b3 m9 T
配置PWM波的参数
PWM频率计算如下所示7 f: _6 M5 c7 M* w2 O( ^ ; C; w% s4 {3 g$ O }7 C( B
在上面配置TIM3参数,预分频系数设置为48-1, 自动重载值设置为1000-1,那么PWM频率为48,000,000/((48-1+1)*(1000-1+1))=1000Hz,即1KHz。 注意载芯片示意图上会看到下图PA6就是TIM3的通道1PWM波输出口。
' {+ e- y! _; [6 D 生成工程设置, T5 ^; k6 p ~# j4 J. Z/ h+ P 注意在生产工程设置中不能出现中文,不然会报错。- h$ j7 p1 E* \) Z3 l
' \5 { z6 T- W% Z7 Y 代码生成设置4 k+ A# d* `, Y+ W) k7 {+ T: \ 最后设置生成独立的初始化文件:# P) [* u" w2 v+ h9 K
生成代码
配置keil% \. V' T/ A9 J / y! k/ f8 O7 y8 z2 s
代码: l: {- e9 L! h8 q2 |" c7 X 在main.c中,先定义两个变量存储设置的占空比和模式
使能TIM3的PWM Channel1 输出。% o K& S$ P/ G( ] 4 |2 l. b5 D+ A4 B
然后在while(1)中改变pwm_i的值,来实现呼吸效果。+ L0 C# q; U4 d 0 e4 k( W0 Z, x7 g) N* _' s5 b
( `5 e+ q8 X- I+ z |
【STM32H5 评测】介绍、环境搭建、工程测试
#双节活动 1.在CubeMX中引用touchGFX出现的问题与解决
如何将STM32CubeMX生成的CMake工程导入STM32CubeIDE
【 逢7发帖赢大礼】1、利用CubeMX生成正点原子H7R7开发板的STM32CubeIDE工程
STM32CubeCLT 1.22.0新版本发布
【下载问题解决】关于ST官网下载软件问题解决
STM32CubeMX 6.18.0新版本发布
【STM32U3评测】使用INS5699 RTC模组
CubeMX生成CubeIDE工程代码乱码
【逢7发帖赢大礼】STM32开发之指纹识别!
微信公众号
手机版