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

第七章:STM32CubeMx 普通PWM基本使用方法

[复制链接]
STMCU小助手 发布时间:2021-1-12 15:00
第七章:STM32CubeMx普通PWM基本使用方法
STM32CubeMx 普通PWM基本使用方法
本文实例说明:
这里是使用 TIM3_CH2输出 一个频率为50kHz;占空比为50% 的PWM信号。
1
先配置STM32CubeMX 参数,如图:

4.1.png
重点说明:
PWM 频率 = APB1 Timerclocks (MHz) / [(Prescaler+1) * (Counter Period+1)]
APB1 Timer clocks (MHz) :64MHz
Counter Period : 20
Prescaler :设置为64-1 那么此时PWM时钟设置为:
          f = 64000000 / 64 /20 = 50KHz
Pulse :设置为10 ,也就是占比为:10/20 = 50%
Fast Mode:如果频率太高可以使能快速模式。可以大大提高PWM反应时间;同时将IO口输出速度调高。
2
代码分析:
  1. static void MX_TIM3_Init(void)
  2. {

  3.   /* USER CODE BEGIN TIM3_Init 0 */

  4.   /* USER CODE END TIM3_Init 0 */

  5.   TIM_MasterConfigTypeDef sMasterConfig = {0};
  6.   TIM_OC_InitTypeDef sConfigOC = {0};

  7.   /* USER CODE BEGIN TIM3_Init 1 */

  8.   /* USER CODE END TIM3_Init 1 */
  9.   htim3.Instance = TIM3;
  10.   htim3.Init.Prescaler = 64-1;
  11.   htim3.Init.CounterMode = TIM_COUNTERMODE_UP;
  12.   htim3.Init.Period = 20-1;
  13.   htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  14.   htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
  15.   if (HAL_TIM_PWM_Init(&htim3) != HAL_OK)
  16.   {
  17.     Error_Handler();
  18.   }
  19.   sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  20.   sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  21.   if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)
  22.   {
  23.     Error_Handler();
  24.   }
  25.   sConfigOC.OCMode = TIM_OCMODE_PWM1;
  26.   sConfigOC.Pulse = 10;
  27.   sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
  28.   sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
  29.   if (HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
  30.   {
  31.     Error_Handler();
  32.   }
  33.   /* USER CODE BEGIN TIM3_Init 2 */
  34.   HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2); //启动PWM输出函数
  35.   __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_2, 10);//这个函数可以设置占空比
  36.   /* USER CODE END TIM3_Init 2 */
  37.   HAL_TIM_MspPostInit(&htim3);

  38. }
复制代码

3
实验现象:
4.2.jpg
文章出处: LinuxARM  电子爱好者

收藏 评论0 发布时间:2021-1-12 15:00

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版