STM32F205 PWM配置
步骤:
- 使能定时器3和相关IO时钟(LED-PB5)
使能定时器3时钟:RCC_APB1PeriphClockCmd();
使能GPIOB时钟:RCC_APB2PeriphClockCmd(); - 初始化IO口为复用功能输出 GPIO_Init();
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; - PB5输出PWM(定时器3通道2),需要部分重映射
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//开启AFIO时钟设置
GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE);//部分重映射 - 初始化定时器 (重装载值ARR,与分频系数PSC等)
TIM_TimeBaseInit();//决定PWM周期 - 初始化输出比较参数:
TIM_OC2Init();//通道2输出比较初始化 - 使能预装载寄存器
TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);//定时器3 通道2 - 使能定时器
TIM_Cmd(); - 不断改变比较值CCRx,达到不同的占空比效果
TIM_SetCompare2(); //通道2,改变比较值CCRx
void TIM3_PWM_Init(u16 arr,u16 psc)
{GPIO_InitTypeDef GPIO_InitStrue;TIM_OCInitTypeDef TIM_OCInitStrue;TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStrue;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE); //使能TIM3和相关GPIO时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);// 使能GPIOB时钟(LED在PB5引脚),使能AFIO时钟(定时器3通道2需要重映射到BP5引脚)RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);GPIO_InitStrue.GPIO_Pin=GPIO_Pin_5; // TIM_CH2GPIO_InitStrue.GPIO_Mode=GPIO_Mode_AF_PP; // 复用推挽GPIO_InitStrue.GPIO_Speed=GPIO_Speed_50MHz; //设置最大输出速度GPIO_Init(GPIOB,&GPIO_InitStrue); //GPIO端口初始化设置GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3,ENABLE);TIM_TimeBaseInitStrue.TIM_Period=arr; //设置自动重装载值TIM_TimeBaseInitStrue.TIM_Prescaler=psc; //预分频系数TIM_TimeBaseInitStrue.TIM_CounterMode=TIM_CounterMode_Up; //计数器向上溢出TIM_TimeBaseInitStrue.TIM_ClockDivision=TIM_CKD_DIV1; //时钟的分频因子,起到了一点点的延时作用,一般设为TIM_CKD_DIV1TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStrue); //TIM3初始化设置(设置PWM的周期)TIM_OCInitStrue.TIM_OCMode=TIM_OCMode_PWM2; // PWM模式2:CNT>CCR时输出有效TIM_OCInitStrue.TIM_OCPolarity=TIM_OCPolarity_High;// 设置极性-有效为高电平TIM_OCInitStrue.TIM_OutputState=TIM_OutputState_Enable;// 输出使能TIM_OC2Init(TIM3,&TIM_OCInitStrue); //TIM3的通道2PWM 模式设置TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable); //使能预装载寄存器TIM_Cmd(TIM3,ENABLE); //使能TIM3}
main功能实现
int main(void){ u16 led0pwmval=0; u8 dir=1; delay_init(); //延时函数初始化 LED_Init(); //初始化与LED连接的硬件接口TIM1_PWM_Init(899,0);//不分频。PWM频率=72000/(899+1)=80Khz while(1){delay_ms(10); if(dir)led0pwmval++;else led0pwmval--; if(led0pwmval>300)dir=0;if(led0pwmval==0)dir=1; TIM_SetCompare1(TIM1,led0pwmval); }
}
//控制 LED0_PWM_VAL 的值从 0 变到 300,然后又从 300 变到 0,如此循环,因此 DS0 的亮度也会跟着从暗变到亮,然后又从亮变到暗。
STM32F205 PWM配置相关推荐
- 在linux环境下安装wiringpi库,wiringPi库的pwm配置及使用说明
本文介绍树莓派(raspberry pi)在linux c 环境下的硬件pwm配置及使用方法. 1. 下载安装wiringPi 此步骤建议参考官网指南,wiringPi提供了对树莓派的硬件IO访问,包 ...
- MTK 驱动(47)---使用PWM配置背光如何配置,及频率计算
[MT6582_LCD]使用PWM配置背光如何配置,及频率计算 2016年07月08日 10:10:22 阅读数:1175 MT6582 使用PWM配置背光及频率计算 [SOLUTION] 以GP ...
- STM32F103 16路PWM 配置
1. 前言 底层库:基于原子的标准库函数 适用芯片:STM32F103系列型号芯片,其他型号未测试(注:已测型号:C8T6.CBT6.RCT6.RET6.ZET6) 所用到的定时器:TIM1.TIM2 ...
- 玩转TM4C1294XL(5)——PWM配置(死区互补输出)
1.简介 简单介绍芯片内部的PWM模块,分享PWM的配置.本人是边学习边记录,内容仅作参考,有错误的地方请见谅. 2.PWM介绍 本部分内容参考自TI官方手册. ...
- 灵动微单片机MM32的PWM配置
MM32SPIN422C 今天我们来聊聊这个芯片: 本产品使用高性能的 ARM ® Cortex TM -M0 为内核的 32 位微控制器,内嵌三相半桥栅极驱 动器与 MOSFET.最高工作频率可达 ...
- PB3------TIM2_CH2通道的pwm配置及注意事项
本文涉及到PB3-- PB11的pwm配置,其中PB3对应TIM2_CH2通道,PB11对应TIM2_CH4通道. PB3为JTDO管脚,如果想将PB3用为普通IO口,需调用 GPIO_PinRema ...
- STM32F4 TIM1输出PWM配置
芯片使用的是STM32F407VET6,在项目中使用PWM控制LCD背光亮度,硬件设计使用PB0--TIM1-CH2N,使用时出现PWM的输出受LCD显示内容相关函数影响 原因: 使用硬件PB0--T ...
- STM32F0xx定时器输出PWM配置
#include "stm32f0xx.h" #define FCY_DIV 1// #define FCY_DIV_1 2//FCY_DIV_1=FCY_DIV+1//2分频比 ...
- STM32 多个定时器 多路PWM配置
实验过程中的笔记 在持续更新中 只是一个简化版本 利用定时器1 2 3 4 配置的PWM输出 高级定时器的 PWM 输出,与普通定时器稍有区别,必须通过函数 TIM_CtrlPWMOutputs ...
- NVT平台PWM配置
1.IO映射 #if (LCD_BACKLIGHT_CTRL == LCD_BACKLIGHT_BY_PWM) #define GPIO_LCD_BLG_PWM P_GPIO_47 #define P ...
最新文章
- BERT面向语言理解的深度双向变换预训练
- shell 统计一个词出现的概率_如何在Mac上设置系统范围的字数统计服务
- java spring-webflux netty
- 初次联系导师短信模板_2020考研复试:提前联系导师的6点注意事项(附邮件模板)...
- artDialog对话框在PHP下的简单应用-artDialog弹出层篇
- 《MySQL——连接查询》
- 安装ipfs-api的命令变了,最新版的命令如下
- java用for语句实现菱形_编写Java程序,应用for循环打印菱形、三角形
- 云效(原RDC)+ 容器服务完成持续集成
- c语言对c99标准声明,C语言中C89与C99的区别
- JS倒计时:从某个固定时间开始倒记
- android mvvm_Android MVVM设计模式
- 已解决:An error occurred at line: 1 in the generated java file The type java.io.ObjectInputStream canno
- Inno Setup脚本
- ucinet网络分析使用总结
- AMS1117输入电源加反后换元件
- Ms08067实验室 JAVA代码审计实战班:开课喽!!
- matlab信号加入白噪音再分离,Matlab中给信号增加白噪声
- Android垂直方向滚动的跑马灯,带gif
- Minecraft Java版1.11_Editing Java版1.11-pre1