你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 PWM互补输出设置

[复制链接]
攻城狮Melo 发布时间:2022-11-4 17:09
本例程是使用STM32CubeMX 6.5版本生成带代码
1 m! D% S2 Q1 a# Q% N9 S测试单片机型号:STM32F103VET63 U; Z6 X  k# {! `, K5 K' \
! ?* z5 |8 W2 {/ \  t& y% L
时钟设置72MHZ
  f# M0 ~6 i- v, g( O' \/ V4 m9 m  _: b4 v3 {
a1444d7daf9043a6a958f03940eec688.png
. t5 I& H; {+ G8 J3 }: ]) O/ D3 I1 [
使用定时器1的通道1 和 通道2 配置PWM互补输出8 K# W0 W8 Q$ O6 @

$ Z* f! ^$ ]+ @1 \ a6d0b97a4fab439c9e9374d0d3b1ae32.png , }, p% h# ~3 N8 X! q/ Z

9 ?* n+ ^8 h) T分频72分频(定时器频率为 72MHZ / 72 = 1MHZ),计数周期1000,也就是计数到1000溢出,所以,PWM频率就是1KHZ,周期是1ms (1s / 1000)
$ |7 M7 G2 L# M# M# L
" k' ~, D4 t3 o' E+ D9 } 47305bf43f08497a8ce780f6d0a93644.png % o! ]# ]7 p& N. S1 ^

4 R  C5 d1 C) |% k6 G$ G0 v3 c) {; i& SPWM占空比设置/ Q: I+ B8 x! E$ p" Q  V

/ S/ d$ h% P- Y" k  m- ]) O c6f43adca7254a41bc894eda325ff6f7.png
/ G6 S1 g) S8 x; y( z: R/ E$ U4 U0 P: x; k9 m( l' F( Y' E
注意: 红框是占空比设置,也就是比较器寄存器和计数器寄存器的数值所比较,相同后翻转引脚(大致就是这个意思)其它不要动
* q3 t* i" C$ S& Z  q. b. |最后生成代码,生成的代码在 main 函数中添加一下几个函数,即可成功运行# D" C( L. c3 T

' v" B% u, ?2 @& s2 S% a& R
  1. int main(void)
    3 T9 n, ?' E, U1 `8 D% I
  2. {
    ; Q; \/ q4 E" O7 o' a/ r: K
  3.   /* USER CODE BEGIN 1 */' v1 {( U3 |" `: P& U8 w5 [0 W9 W" S/ j
  4. 0 J, q1 [2 t; H- E
  5.   /* USER CODE END 1 */
    2 o+ f5 Y% J, R  K4 ]

  6. : v! S5 c! }1 S7 W) u# x
  7.   /* MCU Configuration--------------------------------------------------------*/
    2 G% g5 C9 t) t( H9 z; J: X. S

  8. ) I, a8 E2 T3 |  j- M& N" F
  9.   /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
    + v% t4 n  r# k9 \8 Q) A$ M& L4 U; \
  10.   HAL_Init();' _( h2 v0 t+ d$ f
  11. $ e; ~; m1 \$ R/ h* s
  12.   /* USER CODE BEGIN Init */
    # G( _6 l) b6 M3 ~- q* }7 k

  13. / Q- E; n" g/ h7 x* S
  14.   /* USER CODE END Init */* s0 N! f( \  i( f
  15. 6 e) O1 ?' H: k; Z  F( \. `
  16.   /* Configure the system clock */
    / F  g, }8 d/ V7 c; ^
  17.   SystemClock_Config();
    6 G4 W  u* [# {

  18. 0 K7 l3 t: j. p* {5 n# p0 V5 u% a
  19.   /* USER CODE BEGIN SysInit */) s, q/ a" ?/ @/ O; w
  20. ; R! j& E# v3 Z/ D& f2 f
  21.   /* USER CODE END SysInit */
    ! t" S" B* g. y, V
  22. ; T' `* Z2 w) f  ]8 b* P
  23.   /* Initialize all configured peripherals */
    0 \. w9 O/ u! Y1 q. A
  24.   MX_GPIO_Init();
    ( e' D0 V& b, |6 C; {/ q/ f9 J
  25.   MX_USART1_UART_Init();4 e% c( u0 X0 {0 L6 a& _+ l" u
  26.   MX_TIM1_Init();
    ; Q9 h2 Y6 Y6 ?8 B+ A; H
  27.   MX_ADC1_Init();+ W9 h7 X" E+ w) X3 T# b
  28.   /* USER CODE BEGIN 2 */
      T8 D! {8 z9 U7 S, K1 w
  29.   F2 H% t4 \: d' U- Z  B9 W3 H6 `( Y
  30.   HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);                                                //启动 PWM 通道1信号输出                ' X+ x+ w- Y- l8 v4 q
  31.   HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_2);                                                //启动 PWM 通道2信号输出                ) c) ?1 v3 s5 J. Y- E" _+ R
  32. . T+ F) p" M) @( A# J9 ~7 K5 z+ L

  33. " c4 _" M% R) k6 R& C& e+ N+ s
  34.   HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_1);                                //启动 PWM 通道1 互补信号输出: _& W$ s. Q) {3 E
  35.   HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_2);                                //启动 PWM 通道2 互补信号输出
    # o% z; T" q4 v( g, _% H5 b1 g: J
  36.         ; h6 L# K7 s! s0 L8 h) Y
  37.   __HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,200);                //设置 PWM 通道1 占空比
    $ m4 v% i4 N- c1 I) {5 |* u
  38.   __HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_2,800);                //设置 PWM 通道2 占空比" t$ M; y* F  @) c: N
  39.         
    7 u) V/ m2 \9 E; f  N$ |
  40.         . D6 u5 _$ v  C5 f

  41. 0 h' Y6 s4 `2 n6 L; T' r$ S" `4 {, L
  42.         printf("start up\n");- A- |6 v- S' u& D- }1 E
  43.   /* USER CODE END 2 */1 S, `, t; L2 M  }
  44. : y) ~: V) F( ]* `9 u/ E
  45.   /* Infinite loop */
    5 q$ h, h' q- N  p/ a+ q$ T
  46.   /* USER CODE BEGIN WHILE */
    * U, ~$ s1 G' ]* [- l
  47.   while (1)5 K9 `. ~" T) t3 }; o/ K+ H* j0 N6 P
  48.   {- g# n" X# ?* a3 r/ y$ f
  49.     /* USER CODE END WHILE */
    / s6 @* ~3 A' U

  50. ' C5 B* _8 F: O8 J8 G
  51.     /* USER CODE BEGIN 3 */% L/ K, ~$ W& M7 F- K0 f& a+ H% J
  52.   }% X* u, }+ h! ~7 y
  53.   /* USER CODE END 3 */
    # P  B% O, Y( \" n
  54. }
复制代码
* K: t5 o" P3 w
实际照片
1 v, O! Y/ y# `$ L3 Y" O
' p0 ]* b; Z4 w$ k7 c/ X fa0b5f72dd624544a60976a6bd05add5.png
! [7 W8 n7 r: v6 g
4 s. b- m: L, v( B7 W————————————————
$ B; h# Z  I3 r' W* u8 `版权声明:小石头有大内涵9 \- p9 I; s% a* j5 G: x

4 P' H# {" x1 C: x$ b8 ?0 p! I% I+ ?8 ]) r
赞 收藏 评论0 发布时间:2022-11-4 17:09

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版