找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1584|回复: 7
打印 上一主题 下一主题
收起左侧

stm32怎样增加两个按键控制PWM占空比的增与减实现LED亮度调节?

[复制链接]
跳转到指定楼层
楼主
ID:924919 发表于 2021-12-2 21:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
60黑币
在利用定时器实现PWM输出,控制LED渐变的情况下,怎样增加两个按键控制PWM占空比的增与减实现LED亮度调节?用stm32f103

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:339903 发表于 2021-12-3 11:00 | 只看该作者
通过改变计数值
回复

使用道具 举报

板凳
ID:339903 发表于 2021-12-3 11:03 | 只看该作者
TIM_DeInit(TIM1);   /*TIM1时钟配置*/  TIM_TimeBaseStructure.TIM_Prescaler = 72;      //预分频(时钟分频)72M/72=1000K  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //向上计数  TIM_TimeBaseStructure.TIM_Period = 2000;       //装载值 1000k/2000=500hz  TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;  TIM_TimeBaseStructure.TIM_RepetitionCounter = 0x0;  TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);   /* Channel 1 Configuration in PWM mode */  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;     //PWM模式2  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;  //正向通道有效  TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable;//反向通道无效  TIM_OCInitStructure.TIM_Pulse = 300;        //占空时间  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;   //输出极性  TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;     //互补端的极性   TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;  TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;    TIM_OC1Init(TIM1,&TIM_OCInitStructure);       //通道1  
回复

使用道具 举报

地板
ID:339903 发表于 2021-12-3 11:03 | 只看该作者
TIM_DeInit(TIM1);   /*TIM1时钟配置*/  TIM_TimeBaseStructure.TIM_Prescaler = 72;      //预分频(时钟分频)72M/72=1000K  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //向上计数  TIM_TimeBaseStructure.TIM_Period = 2000;       //装载值 1000k/2000=500hz  TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;  TIM_TimeBaseStructure.TIM_RepetitionCounter = 0x0;  TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);   /* Channel 1 Configuration in PWM mode */  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;     //PWM模式2  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;  //正向通道有效  TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable;//反向通道无效  TIM_OCInitStructure.TIM_Pulse = 300;        //占空时间  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;   //输出极性  TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;     //互补端的极性   TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;  TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;    TIM_OC1Init(TIM1,&TIM_OCInitStructure);       //通道1  
回复

使用道具 举报

5#
ID:339903 发表于 2021-12-3 11:03 | 只看该作者
TIM_DeInit(TIM1);

/*TIM1时钟配置*/
TIM_TimeBaseStructure.TIM_Prescaler = 72;      //预分频(时钟分频)72M/72=1000K
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //向上计数
TIM_TimeBaseStructure.TIM_Period = 2000;       //装载值 1000k/2000=500hz
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_RepetitionCounter = 0x0;
TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);

/* Channel 1 Configuration in PWM mode */
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;     //PWM模式2
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;  //正向通道有效
TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable;//反向通道无效
TIM_OCInitStructure.TIM_Pulse = 300;        //占空时间
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;   //输出极性
TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;     //互补端的极性
TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;

TIM_OC1Init(TIM1,&TIM_OCInitStructure);       //通道1


按键改变300作为变量     TIM_OCInitStructure.TIM_Pulse = 300;        //占空时间
回复

使用道具 举报

6#
ID:313854 发表于 2021-12-3 14:02 | 只看该作者
感觉题目没有讲明白?LED渐变时,再增加两个按键,再原来基础上再增加或降低亮度?调整占空比和频率
回复

使用道具 举报

7#
ID:677275 发表于 2021-12-3 14:57 | 只看该作者
通过两个按键直接调节定时器大小的值即可
回复

使用道具 举报

8#
ID:956918 发表于 2021-12-3 20:03 | 只看该作者
可以在按键函数加上   TIM_SetCompare1(TIM3,i);   这个函数,这个可以改变PWM的占空比  TM3是对应定时器,i  是你想要修改的值,,要小于定时器的定时计数值
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表