STM32标准库开发——PWM驱动代码

PWM驱动初始化代码

在这里插入图片描述
使能定时器二时钟

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);

设置定时器时钟源

TIM_InternalClockConfig(TIM2);

配置定时器二的时基单元

TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
TIM_TimeBaseInitStruct.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInitStruct.TIM_Period=100-1; //ARR寄存器的值
TIM_TimeBaseInitStruct.TIM_Prescaler=720-1; //预分频寄存器的值
TIM_TimeBaseInitStruct.TIM_RepetitionCounter=0;//高级寄存器才有
TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStruct);

初始化定时器二的一二三通道引脚,使用复用推挽输出模式

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_3;
GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStruct);

配置定时器输出比较寄存器

TIM_OCInitTypeDef TIM_OCInitStruct;
TIM_OCStructInit(&TIM_OCInitStruct); //对OC结构体进行一个默认的初始化
TIM_OCInitStruct.TIM_OCMode=TIM_OCMode_PWM1;//设置为OC模式为PWM1模式
TIM_OCInitStruct.TIM_OCPolarity=TIM_OCPolarity_High;//设置为高电平有效,即不翻转电平
TIM_OCInitStruct.TIM_OutputState=TIM_OutputState_Enable;//输出使能
TIM_OCInitStruct.TIM_Pulse=10;
TIM_OC1Init(TIM2,&TIM_OCInitStruct);
TIM_OC2Init(TIM2,&TIM_OCInitStruct);
TIM_OC3Init(TIM2,&TIM_OCInitStruct);

使能定时器二

TIM_Cmd(TIM2,ENABLE);

TIM2 引脚重映射功能

//引脚重映射,由于PA15也可以作为TIM2通道0的输出口,所以可以将引脚映射到15号引脚上
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);

在这里插入图片描述

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-18 17:30:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-18 17:30:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-18 17:30:05       87 阅读
  4. Python语言-面向对象

    2024-01-18 17:30:05       96 阅读

热门阅读

  1. localhost与127.0.0.1有啥区别---一篇带你了解清楚

    2024-01-18 17:30:05       53 阅读
  2. MySQL 定时器

    2024-01-18 17:30:05       49 阅读
  3. leetcode 914. 卡牌分组

    2024-01-18 17:30:05       52 阅读
  4. Docker-harbor私有仓库

    2024-01-18 17:30:05       46 阅读
  5. debian 12 安装 浏览器 Epiphany

    2024-01-18 17:30:05       60 阅读
  6. vue-router之路由钩子函数应用解析

    2024-01-18 17:30:05       58 阅读