標(biāo)題: stm32怎樣增加兩個(gè)按鍵控制PWM占空比的增與減實(shí)現(xiàn)LED亮度調(diào)節(jié)? [打印本頁(yè)]

作者: 單片機(jī)小白7    時(shí)間: 2021-12-2 21:45
標(biāo)題: stm32怎樣增加兩個(gè)按鍵控制PWM占空比的增與減實(shí)現(xiàn)LED亮度調(diào)節(jié)?
在利用定時(shí)器實(shí)現(xiàn)PWM輸出,控制LED漸變的情況下,怎樣增加兩個(gè)按鍵控制PWM占空比的增與減實(shí)現(xiàn)LED亮度調(diào)節(jié)?用stm32f103
作者: 咕咕    時(shí)間: 2021-12-3 11:00
通過(guò)改變計(jì)數(shù)值
作者: 咕咕    時(shí)間: 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  
作者: 咕咕    時(shí)間: 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  
作者: 咕咕    時(shí)間: 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í)間

作者: wspytu    時(shí)間: 2021-12-3 14:02
感覺(jué)題目沒(méi)有講明白?LED漸變時(shí),再增加兩個(gè)按鍵,再原來(lái)基礎(chǔ)上再增加或降低亮度?調(diào)整占空比和頻率
作者: wangdanan    時(shí)間: 2021-12-3 14:57
通過(guò)兩個(gè)按鍵直接調(diào)節(jié)定時(shí)器大小的值即可
作者: 378601462    時(shí)間: 2021-12-3 20:03
可以在按鍵函數(shù)加上   TIM_SetCompare1(TIM3,i);   這個(gè)函數(shù),這個(gè)可以改變PWM的占空比  TM3是對(duì)應(yīng)定時(shí)器,i  是你想要修改的值,,要小于定時(shí)器的定時(shí)計(jì)數(shù)值




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1