登录/注册

stm32f103 4路pwm

更多

在STM32F103中配置4路PWM输出的步骤如下:


1. 选择定时器

STM32F103的通用定时器(如TIM2/TIM3/TIM4)和高级定时器(如TIM1)均支持4路PWM输出。推荐使用以下定时器:


2. 配置GPIO引脚

根据数据手册选择对应定时器的PWM输出引脚,例如:

配置GPIO为复用推挽输出模式:

GPIO_InitTypeDef GPIO_InitStruct;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);

// 示例:配置TIM1的PA8-PA11为复用推挽输出
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStruct);

3. 配置定时器基本参数

设置PWM频率和分辨率:

TIM_TimeBaseInitTypeDef TIM_TimeBaseStruct;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); // 以TIM1为例

// 假设系统时钟72MHz,预分频后1MHz,ARR=999 → PWM频率=1kHz
TIM_TimeBaseStruct.TIM_Prescaler = 71;         // 预分频值 (72MHz / (71+1) = 1MHz)
TIM_TimeBaseStruct.TIM_Period = 999;           // 自动重装载值 (周期=1000us)
TIM_TimeBaseStruct.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseStruct.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStruct);

4. 配置PWM通道

启用4个通道并设置占空比:

TIM_OCInitTypeDef TIM_OCStruct;

// 通道1-4配置
TIM_OCStruct.TIM_OCMode = TIM_OCMode_PWM1;     // PWM模式1(高电平为有效电平)
TIM_OCStruct.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCStruct.TIM_Pulse = 500;                  // 初始占空比50%(500/1000)

TIM_OC1Init(TIM1, &TIM_OCStruct);              // 通道1
TIM_OC2Init(TIM1, &TIM_OCStruct);              // 通道2
TIM_OC3Init(TIM1, &TIM_OCStruct);              // 通道3
TIM_OC4Init(TIM1, &TIM_OCStruct);              // 通道4

// 高级定时器需使能主输出
TIM_CtrlPWMOutputs(TIM1, ENABLE);

5. 启动定时器

TIM_Cmd(TIM1, ENABLE);  // 启动定时器

6. 动态调整占空比

通过修改CCR寄存器实时调整占空比:

TIM_SetCompare1(TIM1, 300);  // 通道1占空比设为30%
TIM_SetCompare2(TIM1, 700);  // 通道2占空比设为70%

关键点

  1. 频率计算
    [ \text{PWM频率} = \frac{\text{系统时钟}}{(\text{预分频值}+1) \times (\text{自动重装载值}+1)} ]
  2. 占空比范围:0到TIM_Period值(如999对应0-100%)。

通过以上步骤,即可在STM32F103上输出4路独立可调的PWM信号。

STM32CubeIDE下配置STM32F103输出带死区的互补PWM

STM32F103的TIM1和TIM8是高级定时器,可以产生嵌入死区时间的互补PWM波,使用STM32CubeIDE完成相关配置,可以直接生成代

2023-11-01 09:41:07

ch32v103stm32f103的区别

ch32v103与stm32f103的区别  Ch32v103与STM32f103

2023-08-22 15:49:00

STM32F103 PWM介绍

一、STM32F103 PWM介绍STM32F1除了基本定时器TIM6和TIM7,其他定时器都可以产生

2022-01-19 07:13:06

GD32F103STM32F103的区别 2021.6.2

GD32F103和STM32F103区别介绍关键词Key words:GD32F103、

资料下载 李杰 2021-12-08 11:06:03

STM32f103adDMA传输 软件转换资料压缩包

STM32f103八路adDMA传输 软件转换资料压缩包

资料下载 泥黎531 2021-10-22 10:29:00

基于STM32f103的输入捕获测频率和占空比

基于STM32f103的输入捕获测频率和占空比

资料下载 shyshyshy 2021-08-02 10:10:24

基于STM32f103的FFT频率测试程序下载

基于STM32f103的FFT频率测试程序下载

资料下载 shyshyshy 2021-08-02 10:07:20

基于STM32f103使用的DAC正弦波

基于STM32f103使用的DAC正弦波

资料下载 shyshyshy 2021-08-02 10:05:00

如何用STM32F103输出一PWM波形

STM32的PWM和DAC练习目录一、用STM32F103输出一路

2022-01-07 07:16:42

怎样用STM32F103去输出一PWM波形呢

怎样用STM32F103去输出一路PWM波形呢?怎样去观察STM32F103

2021-11-15 07:10:53

STM32F103输出一PWM波形

这里写目录标题一、用STM32F103输出一路PWM波形二、用STM32

2021-08-17 09:25:20

STM32F103输出PWM波形

STM32的PWM和DAC练习STM32F103输出一路

2021-08-17 09:01:27

STM32F103输出PWM波形

STM32的PWM和DAC练习一、 用STM32F103输出一路

2021-08-17 06:29:16

STM32F103输出一PWM波形

STM32中的PWM和DAC1. 用STM32F103输出一路

2021-08-09 09:02:43

stm32f030和stm32f103功能差异

stm32f030和stm32f103功能差异主要表现在哪?

2021-07-22 09:35:47

7天热门专题 换一换
相关标签