找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2853|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

stm32怎樣增加兩個(gè)按鍵控制PWM占空比的增與減實(shí)現(xiàn)LED亮度調(diào)節(jié)?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:924919 發(fā)表于 2021-12-2 21:45 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
60黑幣
在利用定時(shí)器實(shí)現(xiàn)PWM輸出,控制LED漸變的情況下,怎樣增加兩個(gè)按鍵控制PWM占空比的增與減實(shí)現(xiàn)LED亮度調(diào)節(jié)?用stm32f103

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:339903 發(fā)表于 2021-12-3 11:00 | 只看該作者
通過(guò)改變計(jì)數(shù)值
回復(fù)

使用道具 舉報(bào)

板凳
ID:339903 發(fā)表于 2021-12-3 11:03 | 只看該作者
TIM_DeInit(TIM1);   /*TIM1時(shí)鐘配置*/  TIM_TimeBaseStructure.TIM_Prescaler = 72;      //預(yù)分頻(時(shí)鐘分頻)72M/72=1000K  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //向上計(jì)數(shù)  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;//反向通道無(wú)效  TIM_OCInitStructure.TIM_Pulse = 300;        //占空時(shí)間  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;   //輸出極性  TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;     //互補(bǔ)端的極性   TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;  TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;    TIM_OC1Init(TIM1,&TIM_OCInitStructure);       //通道1  
回復(fù)

使用道具 舉報(bào)

地板
ID:339903 發(fā)表于 2021-12-3 11:03 | 只看該作者
TIM_DeInit(TIM1);   /*TIM1時(shí)鐘配置*/  TIM_TimeBaseStructure.TIM_Prescaler = 72;      //預(yù)分頻(時(shí)鐘分頻)72M/72=1000K  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //向上計(jì)數(shù)  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;//反向通道無(wú)效  TIM_OCInitStructure.TIM_Pulse = 300;        //占空時(shí)間  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;   //輸出極性  TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;     //互補(bǔ)端的極性   TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;  TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;    TIM_OC1Init(TIM1,&TIM_OCInitStructure);       //通道1  
回復(fù)

使用道具 舉報(bào)

5#
ID:339903 發(fā)表于 2021-12-3 11:03 | 只看該作者
TIM_DeInit(TIM1);

/*TIM1時(shí)鐘配置*/
TIM_TimeBaseStructure.TIM_Prescaler = 72;      //預(yù)分頻(時(shí)鐘分頻)72M/72=1000K
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //向上計(jì)數(shù)
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;//反向通道無(wú)效
TIM_OCInitStructure.TIM_Pulse = 300;        //占空時(shí)間
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;   //輸出極性
TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;     //互補(bǔ)端的極性
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;        //占空時(shí)間
回復(fù)

使用道具 舉報(bào)

6#
ID:313854 發(fā)表于 2021-12-3 14:02 | 只看該作者
感覺(jué)題目沒(méi)有講明白?LED漸變時(shí),再增加兩個(gè)按鍵,再原來(lái)基礎(chǔ)上再增加或降低亮度?調(diào)整占空比和頻率
回復(fù)

使用道具 舉報(bào)

7#
ID:677275 發(fā)表于 2021-12-3 14:57 | 只看該作者
通過(guò)兩個(gè)按鍵直接調(diào)節(jié)定時(shí)器大小的值即可
回復(fù)

使用道具 舉報(bào)

8#
ID:956918 發(fā)表于 2021-12-3 20:03 | 只看該作者
可以在按鍵函數(shù)加上   TIM_SetCompare1(TIM3,i);   這個(gè)函數(shù),這個(gè)可以改變PWM的占空比  TM3是對(duì)應(yīng)定時(shí)器,i  是你想要修改的值,,要小于定時(shí)器的定時(shí)計(jì)數(shù)值
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表