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

PWM驱动初始化代码

使能定时器二时钟

c 复制代码
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);

设置定时器时钟源

c 复制代码
TIM_InternalClockConfig(TIM2);

配置定时器二的时基单元

c 复制代码
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);

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

c 复制代码
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);

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

c 复制代码
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);

使能定时器二

c 复制代码
TIM_Cmd(TIM2,ENABLE);

TIM2 引脚重映射功能

c 复制代码
//引脚重映射,由于PA15也可以作为TIM2通道0的输出口,所以可以将引脚映射到15号引脚上
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
相关推荐
饶宇航20 分钟前
嵌入式开发硬件——单片机
单片机·嵌入式硬件
DIY机器人工房2 小时前
一个基于 epoll 实现的多路复用 TCP 服务器程序,相比 select 和 poll 具有更高的效率
开发语言·嵌入式硬件·php·嵌入式·diy机器人工房
CC呢3 小时前
基于单片机万年历/时钟/语音时钟
单片机·嵌入式硬件·万年历·智能时钟
gladosAI5 小时前
stm32cubeide memory analyzer 不显示BUG
stm32·cubeide
嵌入式小李8 小时前
STM32项目(20)——智能家居(含机智云APP)
stm32·嵌入式硬件·智能家居
Net_Walke10 小时前
【FreeRTOS 】任务通知
单片机·物联网
酷飞飞10 小时前
ADC常用库函数(STC8系列)
单片机·嵌入式硬件·51单片机·嵌入式·stc8
XINVRY-FPGA11 小时前
XCZU19EG-2FFVB1517I FPGA Xilinx AMD ZynqUltraScale+ MPSoC
arm开发·嵌入式硬件·fpga开发·硬件架构·硬件工程·dsp开发·fpga
Hello小赵11 小时前
嵌入式硬件学习(十一)—— platform驱动框架
数据库·嵌入式硬件·学习
猫猫的小茶馆20 小时前
【STM32】HAL库中的实现(二):串口(USART)/看门狗(IWDG/WWDG)/定时器(TIM)
arm开发·驱动开发·stm32·单片机·嵌入式硬件·mcu·智能硬件